0

次のコードを使用しています。

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

特定の URL 構成 (フランスでは、feature = A、および fuzzy = .6) を指定して、ある都市の Geopy Web サイトから返された最初の結果を印刷したいと考えています。

ただし、上記のコードから「JSON オブジェクトをデコードできません」というエラーが引き続き発生します。問題は何ですか?

4

2 に答える 2

1

JSON Web サービスを使用することになっています。

url = 'http://ws.geonames.org/searchJSON?q=%s&country=FR&featureClass=A&continentCode=&fuzzy=0.6'
gn.geocode_url(url % city)

さらにパラメーターを追加する適切な方法は、使用することurlencodeであり、URLは次をgeocode使用します。

from urllib import urlencode
params = {
    'q': 'roman',
    'featureClass': 'A',
    'fuzzy': '0.6',
    'country': 'FR'
}
gn.geocode_url(gn.url % urlencode(params))
于 2013-02-25T22:43:30.840 に答える
0

私は geopy や GeoNames データベースには詳しくありませんが、彼らの Web サービスに何かを要求するつもりだったのですか? あなたが指定した URL は、何か問題が発生していない限り、JSON 応答ではなく通常の Web ページを返すようです。

ユーザー名/アカウントが必要ですが、API にも同様の引数があるようです。おそらくあなたは次のことを意味しました:

http://api.geonames.org/searchJSON?q=paris&country=FR&featureClass=A&continentCode=&fuzzy=0.6&maxRows=10&username=demo
于 2013-02-25T22:42:31.650 に答える