我有一个非常大(> 10GB)的JSON文件,其中包含多个词典。
现在,我有一些其他词典的列表。
让我们说我希望在这个文件中找到字典,它匹配列表中两个字典键的值,并最终从这些字典中提取第三个键的值。我该怎么做呢?
目前,这就是我的想法:
def parse(file):
for l in file:
yield eval(l)
# list_of_dicts is the list containing the dictionaries
for i in range(0,len(list_of_dicts)):
generator_of_dicts = parse("huge_file.json")
for j in generator_of_dicts:
if j[key1] == list_of_dicts[i][key1] \
and j[key2] == list_of_dicts[i][key2]:
print j[key3]
break
有更好的方法吗?
答案 0 :(得分:0)
我可能会使用jq Bindings for python https://pypi.python.org/pypi/jq 这是对JSON进行查询的好工具。
否则python的JSON库是好的。
但是:10 Gb是很多 - 如果你没有RAM,我必须流式传输,jq可能非常方便。