2015-07-13 35 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')' 
相关问题