Python / Django引用嵌套JSON

时间:2017-08-04 20:59:13

标签: python json django google-maps

我正在使用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对象。

1 个答案:

答案 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)