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.
我来是为了从 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.