这是将字符串字典存储在文件中的最佳方法(因为它们很大)并将其部分地加载到python中。这里的字符串字典意味着,关键字将是一个字符串,值将是一个字符串列表。
字典以附加形式存储以检查密钥,如果可用,则不更新或否则更新。然后使用密钥进行后期处理。
答案 0 :(得分:1)
答案 1 :(得分:0)
您可以简单地将字典写入文本文件,然后创建一个仅从该文本文件中提取某些键和值的新字典。
但是您最好探索json模块。
这是一种使用json模块将名为“样本”的字典写到文件的简单方法:
import json
with open('result.json', 'w') as fp:
json.dump(sample, fp)
在加载方面,我们需要了解更多有关如何选择从JSON文件加载哪些键的信息。
答案 2 :(得分:0)
上面的答案很好,但是我讨厌使用JSON,在数据损坏之前,我一直在用pickle遇到问题,所以我要做的是,我使用numpy的保存和加载
要保存np.save(filename,dict)
加载dict = np.load(filename).item()
真的很简单并且效果很好,就部分加载而言,您总是可以将字典拆分成多个较小的字典,然后将它们保存为单独的文件,也许不是一个很具体的解决方案,但是可以工作
要拆分字典,您可以执行以下操作
temp_dict = {}
for i,k in enumerate(dict.keys()):
if i%1000 == 0:
np.save("records-"+str(i-1000)+"-"+str(i)+".npy",temp_dict)
temp_dict = {}
temp_dict[k]=dict[k].value()
然后执行加载操作
my_dict={}
all_files = glob.glob("*.npy")
for f in all_files:
dict = np.load(filename).item()
my_dict.update(dict)
答案 3 :(得分:0)
如果这是用于某种数据库类型的,请为自己省去麻烦,并使用TinyDB。保存到光盘时,它使用JSON格式,并为您提供所需的“部分”加载。
我只推荐 TinyDB
,因为这似乎与您要实现的目标最接近,如果您不喜欢,请尝试使用其他数据库有很多吨!