我有一些500MB的json文件。如果我使用“平凡”的json.load一次加载所有内容,它将消耗大量内存。
有没有办法部分读取文件?如果它是文本行分隔文件,则可以在行上进行迭代。我正在寻找一个比喻。
有什么建议?谢谢
请参阅其他答案以获取建议。
简短的回答:不。
正确地分割json文件将需要对json对象图有深入的了解。
但是,如果您有此知识,则可以实现一个类似文件的对象,该对象包装json文件并吐出适当的块。
例如,如果您知道json文件是单个对象数组,则可以创建一个包装json文件并返回数组块的生成器。
您必须进行一些字符串内容解析,以正确获取json文件的分块。
我不知道是什么产生了您的json内容。如果可能,我会考虑生成多个可管理文件,而不是一个大文件。