【发布时间】:2011-08-02 23:05:46
【问题描述】:
我正在使用下面的代码调用 Google Maps API 并解析一些 JSON 数据。
def getLocalityFromPostCode(postcode):
import urllib, json
import pprint
url = "http://maps.googleapis.com/maps/api/geocode/json?address=%s&sensor=false" % postcode
googleResponse = urllib.urlopen(url)
jsonResponse = json.loads(googleResponse.read())
return jsonResponse
这很好用。但是,我只需要来自['results']['address_components'] 的值,其中'type' 是[ "locality", "political" ] 但是,该值的索引会根据给定的邮政编码字符串的精确程度而有所不同。
如果我给出一个直接的 poscode(如 XX10),则该值出现在 address_components 列表的第 0 项中。但是,如果我给出一个城市和邮政编码,它会出现在第一项中。
谁能帮帮我。我需要在 address_components 中搜索 [ "locality", "political" ] 值。
编辑
您可以在http://maps.googleapis.com/maps/api/geocode/json?address=sy4&sensor=false(仅邮政编码)和http://maps.googleapis.com/maps/api/geocode/json?address=47%20High%20Street%20Shrewsbury,%20SY4&sensor=false(完整地址)查看提要。
正如您在示例 1 中看到的,我正在查找的数据在索引 1 中,而在第二个示例中,我正在查找的数据在索引 2 中。
【问题讨论】:
-
你能在每种情况下发布一个 JSON 的例子吗?
-
顺便说一句,使用
requests.get('http://maps.googleapis.com/maps/api/geocode/json', {'address': '%s', 'sensor': 'false'}).json()对我来说看起来更好。特别是如果您对属性使用单独的变量。import requests显然是必需的。
标签: python json google-maps