【问题标题】:Geopy chokes on ASCII charactersASCII 字符上的 Geopy 阻塞
【发布时间】:2015-07-13 08:54:29
【问题描述】:
# -*- 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)

第二次尝试解码:

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

希腊这个词不应该带来任何麻烦。有人有想法吗?

【问题讨论】:

    标签: python geopy


    【解决方案1】:

    我发现简单的解决方案是使用英语:)

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

    【讨论】:

      【解决方案2】:

      只是让你知道,如果你想知道函数可以带什么参数,你可以输入:

      print geolocator.geocode.func_code.co_varnames
      
      '('self', 'query', 'exactly_one', 'timeout', 'addressdetails', 'language', 'geometry', 'params', 'url')'
      

      【讨论】:

        猜你喜欢
        • 2014-12-16
        • 1970-01-01
        • 1970-01-01
        • 1970-01-01
        • 1970-01-01
        • 1970-01-01
        • 1970-01-01
        • 1970-01-01
        • 2023-04-01
        相关资源
        最近更新 更多