在 Python 中解析和操作大型 JSON 文件的最有效方法是什么?

问题描述 投票:0回答:1

我正在做一个项目,我需要在 Python 中解析和操作大型 JSON 文件。但是,我无法找到一种有效的方法来处理这些文件,因为它们的大小有几千兆字节,而且我遇到了性能问题。我试过使用内置的 json 库,但它似乎很慢并且占用大量内存。谁能推荐一种更有效的方法来处理 Python 中的大型 JSON 文件?理想情况下,我希望能够只加载和操作文件中我需要的部分,而不必将整个文件读入内存。任何建议或意见将不胜感激。

我已经尝试过使用 Python 内置的 json 库来解析和操作大型 JSON 文件,但事实证明它很慢并且占用内存。具体来说,我使用 json.load() 方法将整个文件读入内存,然后使用生成的 Python 对象。但是,这种方法不能很好地适应文件的大小,并导致性能问题。

我所希望的是一种更有效的方式来处理 Python 中的大型 JSON 文件,我可以只加载和操作我需要的文件部分,而不必将整个文件读入内存。我愿意使用第三方库或其他工具,只要它们能够提供更好的性能和可扩展性。任何建议或意见将不胜感激。

python json performance memory-management
1个回答
0
投票

TL;DR:试试 ijson。

如果你必须严格使用 JSON,那么你唯一的选择就是 ijson。

https://pypi.org/project/ijson/

我能够解析数 GB 的单个 JSON 文件,同时使用低于 1 GB 的内存。

不过,这可能有点困难,具体取决于 JSON 文件结构。你可以先自己尝试一下,在 Stack Overflow 中有很多关于 ijson 实际使用的问题。

但如果我是你,我可能倾向于使用 JSONL 格式,以使用 pyspark 等工具进行扩展。

© www.soinside.com 2019 - 2024. All rights reserved.