Python 3 - 将多个API查询编写为单个JSON文件

时间:2017-08-07 19:52:09

标签: python python-requests

我目前正在使用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')

1 个答案:

答案 0 :(得分:0)

您可以将final_data设为列表

final_data = []

附加请求数据

final_data.append(data)

该文件将包含所有请求。

对于每个请求都在自己的行上:

for fd in final_data:
    json.dump(fd, f)
    f.write("\n")