【发布时间】:2014-08-14 23:09:53
【问题描述】:
我想非常清楚地说明这一点,所以我从我知道的案例开始,这样每个人都知道我的意思。当我在 pickle 文件中只存储一个字典时,这是我使用的方法,效果很好。
#open pickle file
with open("a_pickle_file", 'rb') as input:
x = pickle.load(input)
#Now update the dict in your pickle file
a_dict.update(x)
假设对这本字典进行一些任意操作,现在我保存如下:
#Save whatever u added to the dict
pickle.dump(open(a_dict,"a_pickle_file"))
现在继续讨论我不确定的情况,而且无论如何我发现的文档似乎几乎没有文档。我想做和上面一样的事情,只是这次我将两个字典存储在一个列表中,然后像这样将列表存储在 pickle 文件中,
#Two dict
MyFirstDict = { 1: 'a' }
MySecondDict = { 2:'b' }
#Store them in a list
two_dict = [MyFirstDict, MySecondDict]
#save them
pkl.dump( two_dict, open( "two_dict_pkl_file", "wb" ) )
现在我在一个列表中有两个字典,并将其存储在我的 pickle 文件中。现在从这里如何加载这个泡菜文件进行操作?加载后,我如何访问其中的每个字典以进行更新和操作。最后,我可以使用上面相同的pkl.dump 语句重新保存它吗?谢谢
编辑
所以在大多数情况下,执行此操作的过程通常是相同的,除了您需要使用以前的信息更新字典的部分。这是一个 pkl 文件中两个 dict 列表的输出:
[{'I': 'D', 'x': 'k', 'k': [datetime.time(11, 52, 3, 514000)]}, {'I': 'D', 'x': 'k', 'D': [datetime.time(11, 52, 3, 514000)]}]
如您所见,它的存储方式很奇怪,我似乎无法分别正确访问每个 dict 以更新它们必须是某种语法才能正确执行此操作。
【问题讨论】:
标签: python python-2.7 dictionary pickle