我正在开发一个流程,很可能需要将非常大的JSON数组序列化到文件中。因此,将整个数组加载到内存中并直接转储到文件中是行不通的。我需要将每个单独的项流式传输到文件中以避免出现内存问题。
令人惊讶的是,我找不到任何这样做的示例。下面的代码片段是我拼凑在一起的东西。有更好的方法来做到这一点吗?
first_item = True
with open('big_json_array.json', 'w') as out:
out.write('[')
for item in some_very_big_iterator:
if first_item:
out.write(json.dumps(item))
first_item = False
else:
out.write("," + json.dumps(item))
out.write("]")