小编典典

有没有一种内存高效且快速的方法来在python中加载大json文件?

json

我有一些500MB的json文件。如果我使用“平凡”的json.load一次加载所有内容,它将消耗大量内存。

有没有办法部分读取文件?如果它是文本行分隔文件,则可以在行上进行迭代。我正在寻找一个比喻。

有什么建议?谢谢


阅读 554

收藏
2020-07-27

共1个答案

小编典典

更新资料

请参阅其他答案以获取建议。

2010年的原始答案,现在已经过时

简短的回答:不。

正确地分割json文件将需要对json对象图有深入的了解。

但是,如果您有此知识,则可以实现一个类似文件的对象,该对象包装json文件并吐出适当的块。

例如,如果您知道json文件是单个对象数组,则可以创建一个包装json文件并返回数组块的生成器。

您必须进行一些字符串内容解析,以正确获取json文件的分块。

我不知道是什么产生了您的json内容。如果可能,我会考虑生成多个可管理文件,而不是一个大文件。

2020-07-27