Python & Yelp API: 如何绕过 JSON 响应 LOCATION_NOT_FOUND

Python & Yelp API: how to bypass JSON response LOCATION_NOT_FOUND

我来是为了从 Yelp API 取回 JSON。 当我搜索一个城镇但该城镇不在 Yelp 数据库中时,问题就来了。 在这种情况下,我收到回复:

{
  "error": {
    "code": "LOCATION_NOT_FOUND",
    "description": "Could not execute search, try specifying a more exact location."
  }
}

因为我正在批量搜索,所以我想写一个声明,说 if "LOCATION_NOT_FOUND" 在我的 JSON 回复中,什么也不做,然后传递到下一个城镇.

我需要这样的东西:

if response_data['error']['code'] == 'LOCATION_NOT_FOUND':
    pass
else:

但不工作,因为它说:

if response_data['error']['code'] == 'LOCATION_NOT_FOUND':
KeyError: 'error'

这是因为错误并不总是存在,而是在没有城镇的时候出现

您需要先检查是否有错误。这可以使用 key in dict 语法来完成。

if 'error' in response_data:  # Check if there is a key called "error"
    if response_data['error'].get('code') != 'LOCATION_NOT_FOUND':
        # A different code, should probably log this.
        logging.error(json.dumps(response_data))
else:
    # Continue as normal.