【发布时间】:2017-08-12 11:23:55
【问题描述】:
我正在用Python 解析Google API JSON,就像一只在树上爬得太高的猫,我现在发现自己陷入了困境。
代码正在运行,唯一的问题是我正在使用的 2 elif:
if response_data2['status'] == 'OK':
Googleplace_id = response_data2['result']['place_id']
Googleid = response_data2['result']['id']
GoogleName = response_data2['result']['name']
for types in response_data2['result']['address_components']:
field = types.get('types', [])
if 'street_number' in field:
GoogleStreet_Number = types['long_name']
elif 'street_number' not in field:
GoogleStreet_Number = None
if 'route' in field:
GoogleStreet = types['long_name']
if 'postal_code' in field:
GooglePostal_Code = types['long_name']
if 'locality' in field:
GoogleCity = types['long_name']
elif 'locality' not in field:
GoogleCity = None
if 'administrative_area_level_1' in field:
GoogleArea1 = types['long_name']
if 'administrative_area_level_2' in field:
GoogleArea2 = types['long_name']
if 'country' in field:
GoogleCountry = types['long_name']
if 'country' in field:
GoogleCountryCode = types['short_name']
我的脚本轻轻地填充数据库,但 'street_number' 和 'locality' 始终为 NULL。这显然是因为 if/elif 不起作用,并且脚本在这两种情况下只考虑 2 elif。
如何创建一个循环写入数据if JSON 元素在那里,else 写入一个None。
现在总是在有else的地方写一个None
【问题讨论】:
-
不确定我是否理解。看来您的代码应该可以工作;您是否验证了这些字段确实存在或者您是否正确拼写了它们?你有示例json吗?另一件事是这些键可能嵌套在其他东西中。不看就很难说
-
您正在使用许多变量名称的方式。我怀疑只是几行之后您将它们填充到数据库查询中,对吧?
标签: python json loops if-statement google-api