在for循环中逐步添加到JSON文件

2024-04-19 21:14:49 发布

您现在位置:Python中文网/ 问答频道 /正文

在python中的for循环中,有没有方法将单个JSON对象附加到JSON文件中。我不希望将我的所有数据存储在一个巨大的json对象中并一次将其全部转储,因为我正计划执行数百万个API请求。我希望发出一个API请求,将结果转储到一个JSON文件中,然后转到下一个API请求并将其转储到相同的JSON文件中。在

下面的代码覆盖了JSON文件,我正在寻找一些附加的东西。在

for url in urls:
    r = sesh.get(url)
    data = r.json()

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

因此:

^{pr2}$

r.json如下所示:

{'attribute1':1, 'attribute2':10}

Tags: 文件数据对象方法代码inapijson
1条回答
网友
1楼 · 发布于 2024-04-19 21:14:49

更新

因为我没有访问API的权限,所以我只是以您提供的格式在数组中放置了一些示例响应。在

import json

urls = ['{"attribute1":1, "attribute2":10}', '{"attribute1":67, "attribute2":32}', '{"attribute1":37, "attribute2":12}'];
json_arr = []

for url in urls:
    data = json.loads(url)
    json_arr.append(data)
    with open('data.json', 'w') as outfile:
        json.dump(json_arr, outfile)

基本上,我们保留一个数组并将每个API响应附加到该数组中。然后,我们可以将累积的JSON写入一个文件。另外,如果您想在不同的代码执行情况下更新同一个JSON文件,您只需在代码的开头将现有的输出文件读入数组,然后继续我的示例。在



将写入模式更改为附加

尝试改变这个:

^{pr2}$

为此:

with open('data.json', 'a') as outfile:

相关问题 更多 >