我使用以下代码:
from geopy import geocoders
def main():
gn = geocoders.GeoNames()
city = 'roman'
place, (lat, lng) = gn.geocode_url('http://www.geonames.org/advanced-search.html?q='+city+'&country=FR&featureClass=A&continentCode=&fuzzy=0.6')
location, (lat, lon) = geocodes[0]
print lat, lon
我想打印一个城市的Geopy网站返回的第一个结果,给定特定的URL配置(在法国,feature = A,fuzzy = .6)
但是,我仍然从上面的代码中得到“无JSON对象可以解码”的错误。有什么问题?
答案 0 :(得分:1)
您应该使用JSON网络服务:
url = 'http://ws.geonames.org/searchJSON?q=%s&country=FR&featureClass=A&continentCode=&fuzzy=0.6'
gn.geocode_url(url % city)
添加更多参数的正确方法是使用urlencode
,网址geocode
使用:
from urllib import urlencode
params = {
'q': 'roman',
'featureClass': 'A',
'fuzzy': '0.6',
'country': 'FR'
}
gn.geocode_url(gn.url % urlencode(params))