小编典典

在urllib2中使用Python的Google Maps地理编码器

json

我正在尝试将Google Maps地理编码器与Python和JSON结合使用,但一直被告知我有一个错误的请求:

add = "Buckingham Palace, London, SW1A 1AA"
geocode_url = "https://maps.googleapis.com/maps/api/geocode/json?address=%s&sensor=false&region=uk" % add
print geocode_url
req = urllib2.urlopen(geocode_url)
jsonResponse = json.loads(f.read())
pprint.pprint(nest)

失败urllib2.HTTPError: HTTP Error 400: Bad Request

但是如果我只是复制粘贴

https://maps.googleapis.com/maps/api/geocode/json?address=Buckingham%20Palace,%20London,%20SW1A%201AA&sensor=false&region=uk

放入浏览器栏中,效果很好。

我的要求出了什么问题?


阅读 289

收藏
2020-07-27

共1个答案

小编典典

您需要一些URL引用编码,这可以工作:

import urllib2
import pprint
import json
add = "Buckingham Palace, London, SW1A 1AA"
add = urllib2.quote(add)
geocode_url = "http://maps.googleapis.com/maps/api/geocode/json?address=%s&sensor=false&region=uk" % add
print geocode_url
req = urllib2.urlopen(geocode_url)
jsonResponse = json.loads(req.read())
pprint.pprint(jsonResponse)

加法= urllib2.quote(ADD) 是重要的一点。如果您使用的是非拉丁字符,则建议Google API需要UTF-8编码。

2020-07-27