我有一个很大的(> 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
有更好的方法吗?
我可能会为python使用jq绑定https://pypi.python.org/pypi/jq这是一个针对JSON进行查询的好工具。
否则python的JSON库是好的。
但是:10 Gb很大-如果您没有RAM,则有必要使用流技术传输到jq,这非常方便。
本文收集自互联网,转载请注明来源。
如有侵权,请联系[email protected] 删除。
我来说两句