我正在尝试从Google Maps API请求中提取城市名称。 以下是请求的结果:
[{'long_name': 'Chandigarh',
'short_name': 'Chandigarh',
'types': ['locality', 'political']},
{'long_name': 'Chandigarh',
'short_name': 'CH',
'types': ['administrative_area_level_1', 'political']},
{'long_name': 'India', 'short_name': 'IN', 'types': ['country', 'political']},
{'long_name': '160022', 'short_name': '160022', 'types': ['postal_code']}]
我想要提取城市的名称,因为它并不总是第一个:
print(x['long_name'][0] for x in geocode_result[0].get('address_components') if x.get('types')[0]=='locality')
但这给了我一个发电机:
<generator object <genexpr> at 0x0000021FB038F3B8>
然而,当我做一个for循环时,它的确定:
for x in geocode_result[0].get('address_components'):
if x.get('types')[0]=='locality':
print(x.get('long_name'))
Chandigarh
你看到一个班轮有什么问题吗?
谢谢!
答案 0 :(得分:1)
除非在[]
中包含,否则理解会返回一个生成器,所以只需添加这些字符:
print([x['long_name'][0] for x in geocode_result[0].get('address_components') if x.get('types')[0]=='locality'])