【问题标题】:Editing Pickled Data编辑腌制数据
【发布时间】:2011-05-26 21:30:18
【问题描述】:

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

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

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

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

最好,我希望能够将此列表(使用pickle)保存在我从中获取该数据的同一个文件中。但是,如果我只是简单地将数据重新腌制到同一个文件中(假设我最初将其保存到“文件”中),我最终会在该文件中得到同一个列表的两个副本:

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

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

【问题讨论】:

    标签: python storage pickle


    【解决方案1】:

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

    【讨论】:

      【解决方案2】:

      您可以打开文件进行写入而不是追加 - 然后更改将覆盖以前的数据。但是,如果该文件中存储了更多数据,这将是一个问题。如果您真正想要的是有选择地替换腌制文件中的数据,恐怕这不适用于腌制。如果这是一个常见操作,请检查诸如 sqlite 数据库之类的东西是否可以帮助您完成此操作。

      【讨论】:

        猜你喜欢
        • 1970-01-01
        • 1970-01-01
        • 1970-01-01
        • 1970-01-01
        • 1970-01-01
        • 2021-03-30
        • 1970-01-01
        • 1970-01-01
        • 1970-01-01
        相关资源
        最近更新 更多