我目前正在使用Python 3编写的API工具,该工具查询多个网址以获取API数据,然后将结果写入单个.JSON文件。我设法让它工作,但似乎脚本运行但只保存了最后一个API请求。
我想要的是每个请求都有自己的行。这是我迄今为止在查看之前的问题时所做的工作,但它仍然只保存了最后一个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')
答案 0 :(得分:0)
您可以将final_data设为列表
final_data = []
附加请求数据
final_data.append(data)
该文件将包含所有请求。
对于每个请求都在自己的行上:
for fd in final_data:
json.dump(fd, f)
f.write("\n")