编辑腌制数据

时间:2011-05-26 21:30:18

标签: python storage pickle

我需要保存一段复杂的数据:

list = ["Animals", {"Cats":4, "Dogs":5}, {"x":[], "y":[]}]

我打算在同一个文件中保存其中几个列表,我还计划使用pickle模块来保存这些数据。我还希望能够访问pickle数据并将项添加到第二个字典中的列表中。因此,在取消数据并编辑后,列表可能如下所示:

list = ["Animals", {"Cats":4, "Dogs":5}, {"x"=[1, 2, 3], "y":[]}]

首选,我希望能够在我从中获取该数据的同一文件中保存此列表(使用pickle)。但是,如果我只是将数据重新发送到同一个文件(假设我最初将其保存到“文件”),那么我最终会在该文件中找到相同列表的两个副本:

a = open("File", "ab")
pickle.dump(list, a)
a.close()

有没有办法用pickle替换文件中的编辑列表而不是添加第二个(更新的)副本?或者,我是否应该考虑另一种保存此数据的方法?

2 个答案:

答案 0 :(得分:3)

您可以打开文件进行编写而不是附加 - 然后更改将覆盖以前的数据。但是,如果该文件中存储了更多数据,则这是一个问题。如果你想要的是有选择地替换pickle文件中的数据,我担心这不适用于pickle。如果这是一个常见操作,请检查sqlite数据库之类的内容是否可以帮助您实现此目的。

答案 1 :(得分:3)

我想你想要搁置模块。它创建一个文件(使用引擎盖下的pickle),其中包含可通过键访问的变量的内容(想想持久字典)。