2012-03-27 5 views
3

내가 파이썬과 JSON와 Google지도 지오 코더를 사용하기 위해 노력하고있어 파이썬에서 Google지도 지오 코더를 사용하지만, 유지하는 것은 내가 나쁜 요청이 말했다되는 :이 urllib2가

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 

를 복사하여 붙여 넣을 경우

는하지만, 그것을 잘 작동합니다.

내 요청에 어떤 문제가 있습니까?

답변

6

당신은 어떤 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 (추가)가 중요한 포인트입니다. 라틴 문자가 아닌 경우 Google API에 UTF-8 인코딩이 필요하다는 메시지가 표시됩니다.

관련 문제