我正在遍历一堆指向中等大小json文件的url,我试图将它们组合成一个文件。目前,它将每个文件的json数据附加到列表中,然后我可以将其写入单个Json文件
data = []
for i in range(50):
item = tree.getroot()[i][0]
with urllib.request.urlopen(url + item.text) as f:
for line in f:
data.append(json.loads(line))
# Save to file
with open('data.json', 'w') as outfile:
json.dump(data, outfile)
但是,我不确定这种方法的可扩展性,最终我将不得不以这种方式合并100个文件。如果数据列表变得太大,我想尝试一次性写入它会由于内存问题而导致系统崩溃?有没有一种方法可以连续写入json文件,因此不必像这样在循环内附加:
data.append(json.loads(line))
相反,我会在每个循环中使用类似以下内容的文件:
with open('data.json', 'w') as outfile:
json.writedata, outfile)
那样我就可以在构建文件时清除每个循环之间的内存了吗?