我正在尝试从我的文件中检索人员的姓名。文件大小为201GB
import json
with open("D:/dns.json", "r") as fh:
for l in fh:
d = json.loads(l)
print(d["name"])
每当我尝试在Windows上运行此程序时,都会遇到Memory错误,该错误表示内存不足。
是否有一种可靠的方法来解析单个键值对而不加载整个文件?我已经记住了大块的文件,但我不知道如何开始。
以下是示例:test.json
每一行都被换行分隔。希望这会有所帮助。
答案 0 :(得分:1)
您可能需要尝试ijson
:https://pypi.python.org/pypi/ijson
答案 1 :(得分:0)
不幸的是,不能保证JSON文件的每一行都对解析器本身有任何意义。我担心JSON从未打算用于数千兆字节的数据交换,正是因为每个JSON文件都包含一个完整的数据结构。在XML世界中,人们编写了增量事件驱动(基于SAX)的解析器。我不知道这样的JSON库。