0
我已經調用了谷歌API函數:UTF-8和中國特色
def get_lat_long(place):
place = re.sub('\s','+', str(place), flags=re.UNICODE)
url = 'https://maps.googleapis.com/maps/api/geocode/json?address=' + place
content = urllib2.urlopen(url).read()
obj = json.loads(content)
results = obj['results']
lat = long = None
if len(results) > 0:
loc = results[0]['geometry']['location']
lat = float(loc['lat'])
long = float(loc['lng'])
return [lat, long]
然而,當我進入師大附中作爲一個參數,我得到的錯誤:
UnicodeEncodeError: 'ascii' codec can't encode characters in position 0-3: ordinal not in range(128)
我嘗試過str(place).encode('utf-8'),但我不認爲這是問題。我認爲這是因爲函數無法讀取中文字符,所以它在讀取之前需要先將中文字符轉換爲unicode字符串?這只是一個猜測。
1.哪些Python版本? 2.錯誤發生在哪條線上?你能修整你的例子到那條線嗎? 3. str(place).encode('utf-8')'沒有多大意義,'str'正在自己編碼/解碼 – 2014-10-04 15:32:34
我的Python版本是2.7。和我得到錯誤的線是我張貼的片段的第二行。 – 2014-10-04 15:59:55
「地點」的類型是什麼? 'unicode'? – 2014-10-04 22:45:26