2015-07-13 74 views
1
# -*- coding: utf-8 -*- 

from geopy.geocoders import Nominatim 
geolocator = Nominatim() 

place = 'Greece' 

location = geolocator.geocode(place) 
print location 

錯誤:Geopy扼流圈ASCII字符

Traceback (most recent call last): 
File "C:/temp/Test.py", line 10, in <module> 
print location 
UnicodeEncodeError: 'ascii' codec can't encode characters in position 0-5: ordinal not in range(128) 

第二次嘗試與解碼:

# -*- coding: utf-8 -*- 

from geopy.geocoders import Nominatim 
geolocator = Nominatim() 

place = 'Greece' 
place_decoded = place.decode('utf-8') 

location = geolocator.geocode(place) 
print location 

錯誤:

Traceback (most recent call last): 
File "C:/temp/Test.py", line 10, in <module> 
print location 
UnicodeEncodeError: 'ascii' codec can't encode characters in position 0-5: ordinal not in range(128) 

檢查類型的place_decoded:

print type(place_decoded) 
<type 'unicode'> 

希臘這個詞不應該給任何麻煩。任何人有想法?

回答

2

我發現,最簡單的辦法正在與英語:)

from geopy.geocoders import Nominatim 
geolocator = Nominatim() 
place = 'Greece' 
location = geolocator.geocode(place, language='en') 
print location 
'Greece' 
+0

尼斯一個!謝謝 – Brainlock

2

只是讓你知道,如果你想知道什麼參數的函數可以接受你可以鍵入:

print geolocator.geocode.func_code.co_varnames 

'('self', 'query', 'exactly_one', 'timeout', 'addressdetails', 'language', 'geometry', 'params', 'url')' 
相關問題