Python:如何在不重写的情况下编写jsonline?

2024-04-25 10:01:01 发布

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

我有一段代码,它处理一个目录中的数千个文件,对于每个文件,它生成一个对象(字典),其中部分键值为:

{
    ........
    'result': [...a very long list...]
}

如果我处理所有的文件,将结果保存在一个列表中,然后使用jsonlines库来写入所有文件,我的笔记本电脑(mac)的内存就会用完。在

所以我的解决方案是逐个处理,得到结果,然后插入jsonline文件,删除对象并释放内存。在

核对公文后: https://jsonlines.readthedocs.io/en/latest/

我找不到一个不重写jsonline文件就可以写的方法。在

所以我怎么能处理这么大的产量。在

另外,我使用并行线程来处理结果:

^{pr2}$

我希望打开json_文件,写入每个结果,然后释放内存。在


Tags: 文件对象内存代码目录列表字典result
1条回答
网友
1楼 · 发布于 2024-04-25 10:01:01

如果我能正确理解你的问题,我想这会解决问题:

with jsonlines.open('yourTextFile', mode='a') as writer:
    writer.write(...)

正如您提到的重写文件,我认为这是因为您使用mode='w'(w=写入)而不是使用mode='a'(a=appending)

相关问题 更多 >

    热门问题