如何在不将字典加载到内存的情况下写入Python字典?

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

我有一个大表,我想将其转换为 Python 字典,但我不想将所有数据加载到内存中。

是否可以在不先构建对象的情况下主动写入pickle转储?

例如:

import gzip
f_out = open("output.dict.pkl.gz", "wb")

with open("table.tsv", "r") as f_in:
    for line in f_in:
        line = line.strip()
        if line:
            fields = line.split("\t")
            k = fields[3]
            v = fields[1]

            # Pseudocode
            f_out[k] = v # I know this won't work but just so you can see my goal

# Close the pickle file
f_out.close()
python dictionary bigdata pickle large-data
1个回答
0
投票

由于您的键是字符串,因此您可以使用

shelve
模块创建一个类似
dict
的对象,该对象由极简数据库支持,其中键是字符串,值是单独的 pickled 值。

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