0

ipinfodb.com から IP ロケーションやその他のものを取得しようとしていますが、行き詰まっています。

すべての値を新しい文字列に分割して、後で好きなようにフォーマットしたいと考えています。私がこれまでに書いたことは次のとおりです。

resp = urllib2.urlopen('http://api.ipinfodb.com/v3/ip-city/?key=mykey&ip=someip').read()
    out = resp.replace(";", " ")
    print out

文字列を新しいものに置き換える前の出力は次のとおりです。

OK;;someip;somecountry;somecountrycode;somecity;somecity;-;42.1975;23.3342;+05:00

だから私はそれを見せるだけにしました

OK someip somecountry somecountrycode somecity somecity - 42.1975;23.3342 +05:00

しかし、問題は、これはかなりばかげていることです.1つの文字列ではなく、複数の文字列でそれらを使用したいからprint outです.など。サイトをチェックインしてみました。そのためのクラスがありますが、APIバージョンが異なるため、使用できません(v2、私のものはv3です)。誰もそれを行う方法を知っていますか?print countryprint city

PS。答えが明らかであるか、私が間違っている場合は申し訳ありませんが、私はPythonの初心者です:s

4

1 に答える 1

1

respテキストを次のように分割する必要があります;

out = resp.split(';')

out代わりに値のリストになりました。インデックスを使用してさまざまなアイテムにアクセスします。

print 'Country: {}'.format(out[3])

format=jsonまたは、クエリ文字列に追加して、そのAPIからJSON応答を受信します。

import json

resp = urllib2.urlopen('http://api.ipinfodb.com/v3/ip-city/?format=json&key=mykey&ip=someip')
data = json.load(resp)

print data['countryName']
于 2013-02-16T16:11:18.827 に答える