2017-06-20 3 views
0

を要求こんにちはPythonはウェブデータ

import requests 

import json 

f= open 
r=requests.get('https://greatbritishpublictoiletmap.rca.ac.uk/loos/54c234f02ec4abe957b84f37?format=json') 

data = r.json() 

with open('data.json', 'w') as f: 

json.dump(data, f) 

だけで正常に動作している次のコードを持っていますが、私はそれは?、ダイナミック54c234f02ec4abe957b84f37だ上で、URLのトイレのID部分をしたいすべて。それは、JSONのリストから読み取る必要があり、私はこのコードを経由してリストを読み込むことができます -

import json 

with open('loos.json') as json_data: 


d = json.load(json_data) 

をしかし、私はロースデータセットから読み取る「ID」を作成する方法を見つけ出すことができない、JSON形式のダンプに各JSONの結果を追加しますそれは「ロース」データセット

を反復処理として、私は、このタスクを完了に近いんだと感じますが、単にチップまたは2

多くの感謝を必要としています。

を付加更新

`import json 
import requests 

with open('Tloos.json') as json_data: 

data = json.load(json_data) 

for i, loo in enumerate(data['features']): 
    loo_id = loo['_id'] 
    r=requests.get('https://greatbritishpublictoiletmap.rca.ac.uk/loos/{}?format=json'.format(loo_id)) 

data = r.json() 
with open('data%d.json' %i, 'w') as f: 
    json.dump(data, f)` 

だから、それは私の試みだが、それが唯一の出力JSONファイル内の最後のトイレIDを保存しています、私はそれが他の人を上書きだと思います(私のテストTloos.jsonファイルがあり合計で3つのルーズ)、または適切に反復しないか?これをデバッグするにはどうすればいいですか?

+0

次のようなものが役に立ちます: '' https://greatbritishpublictoiletmap.rca.ac.uk/loos/ {}?format = json'.format(loo.id) ' –

+0

チップのためにとても感謝します。以前は何か類似していましたが、ちょうどそれを釘付けにすることはできませんでした.jsonファイルにダンプする前に、 'loos'データセット全体を実行するという点では、 – Dan

答えて

1

指定した内容は、文字列formatを使用して非常に簡単に行うことができます。

import requests 
import json 

with open('loos.json') as json_data: 
    loo_id = json.load(json_data)['id'] 

r=requests.get('https://greatbritishpublictoiletmap.rca.ac.uk/loos/{}?format=json'.format(loo_id)) 

data = r.json() 
with open('data.json', 'w') as f: 
    json.dump(data, f) 

これは、あなたにそれを行う方法の要点を与えるでしょう。私はあなたのloos.jsonの構造を確かに知らないので、loo_idを取得する必要があるので、それを微調整する必要があります。残りは同じままです。あなたは多くのloo_idsを反復処理したい場合は

、あなたがループして、このような何かをする必要があると思います:

loo_ids
for i, loo in enumerate(loo_structure['features']): 
    loo_id = loo['_id'] 
    r=requests.get('https://greatbritishpublictoiletmap.rca.ac.uk/loos/{}?format=json'.format(loo_id)) 

    data = r.json() 
    with open('data%d.json' %i, 'w') as f: 
     json.dump(data, f) 

は、あなたのIDを含むいくつかの反復可能です。

+0

もう一度、私のスクリプトを書く – Dan

+0

@ダン確か。それが動作する場合、私の答えをマークし、あなたの質問を閉じることを検討してください。乾杯。 –

+0

@Dan Updated - {"type": "FeatureCollection"、 "features":[{"_ id": "54c2346a2ec4abe957b8353a"}、{"_ id": "54c2346a2ec4abe957b8353b"} – Dan

関連する問題