有没有一种有效的方法来搜索非常大的文件中的字典?

时间:2016-07-21 12:39:45

标签: python-2.7 dictionary

我有一个非常大(> 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

有更好的方法吗?

1 个答案:

答案 0 :(得分:0)

我可能会使用jq Bindings for python https://pypi.python.org/pypi/jq 这是对JSON进行查询的好工具。

否则python的JSON库是好的。

但是:10 Gb是很多 - 如果你没有RAM,我必须流式传输,jq可能非常方便。