現在、Python 3で書かれたAPIツールを使用して、複数のURLをクエリしてAPIデータを取得し、その結果を単一の.JSONファイルに書き込みます。私はこれを正常に動作させることができましたが、スクリプトは実行されますが、最後のAPI要求だけが保存されているようです。Python 3 - 複数のAPIクエリを単一のJSONファイルに書き込む
私が望むのは、各リクエストが独自の行を持つことです。これまでの質問を見て、これまでのところこれまでに行ってきたことですが、それでも最後のAPIリクエストのみが保存されます。私が間違っていることをアドバイスできますか?これはシンプルに見えるかもしれないが、私はPythonにとって全く新しいことを謝ります。
ベスト、 Stig0501
import requests
import json
urls = ["https://api.chucknorris.io/jokes/random",
"http://api.icndb.com/jokes/random"]
final_data = []
headers = {'User-Agent': 'Mozilla/5.0 (X11; Linux x86_64) AppleWebKit/537.36 (KHTML, like Gecko) Chrome/43.0.2357.81 Safari/537.36'}
for url in URLs:
data = requests.get(url, headers=headers).json()
final_data.update(data)
with open ('output.json', 'w') as f:
for fd in final_data:
json.dump(fd, f)
f.write('\n')
各 'data'が同じキーを持っている場合は、次に' final_data'内のエントリは、各要求に上書きされます。 –
'final_data'を' list'に変更します。 –
'final_data'を' list'に変更します。 –