我有一个大表,我想将其转换为 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()
由于您的键是字符串,因此您可以使用
shelve
模块创建一个类似 dict
的对象,该对象由极简数据库支持,其中键是字符串,值是单独的 pickled 值。