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

from geopy.geocoders import Nominatim
geolocator = Nominatim()

place = 'Greece'

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)

デコードの 2 回目の試行:

# -*- 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'>

ギリシャという言葉は何の問題もありません。誰でもアイデアがありますか?

4

2 に答える 2

2

関数が受け取ることができるパラメーターを知りたい場合は、次のように入力できます。

print geolocator.geocode.func_code.co_varnames

'('self', 'query', 'exactly_one', 'timeout', 'addressdetails', 'language', 'geometry', 'params', 'url')'
于 2015-07-13T10:14:45.373 に答える
2

簡単な解決策は英語で機能することがわかりました:)

from geopy.geocoders import Nominatim
geolocator = Nominatim()
place = 'Greece'
location = geolocator.geocode(place, language='en')
print location
'Greece'
于 2015-07-13T09:30:15.277 に答える