我正在尝试将Google Maps地理编码器与Python和JSON结合使用,但一直被告知我有一个错误的请求:
add = "Buckingham Palace, London, SW1A 1AA" geocode_url = "https://maps.googleapis.com/maps/api/geocode/json?address=%s&sensor=false®ion=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。
urllib2.HTTPError: HTTP Error 400: Bad Request
但是如果我只是复制粘贴
https://maps.googleapis.com/maps/api/geocode/json?address=Buckingham%20Palace,%20London,%20SW1A%201AA&sensor=false®ion=uk
放入浏览器栏中,效果很好。
我的要求出了什么问题?
您需要一些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®ion=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编码。