我正在使用Google Places Reverse Geocode API返回给定地址的纬度和长度。 API返回一个包含大量嵌套对象的大量JSON文件。这是Google的documentation。
我正在尝试抓取geometry.location.lat对象(请参阅文档)。这是我当前的代码,然后是它返回的错误:
address_coords = gmaps.geocode(raw_address)
# gmaps makes the API request and returns the JSON into address_coords
address_lat = address_coords['results']['geometry']['location']['lat']
address_lon = address_coords['results']['geometry']['location']['lng']
TypeError:列表索引必须是整数或切片,而不是str
我不确定如何引用该JSON对象。
答案 0 :(得分:1)
错误告诉您,您正在尝试将数组索引,就像它是属性一样。
最有可能results
是数组,因此您需要执行以下操作以获取索引0
处第一项的值:
address_coords['results'][0]['geometry']['location']['lng']
另一种可能性是geometry
包含多个坐标,您可以类似地索引:
address_coords['results']['geometry'][0]['location']['lng']
无论哪种方式,你都应该打印结构,看看哪些属性是数组与字典。
import pprint
pprint.pprint(address_coords)