【问题标题】:python pickle: what is it? when would i use it?蟒蛇泡菜:它是什么?我什么时候用?
【发布时间】:2012-05-10 21:24:25
【问题描述】:

我知道 pickle 是一个对象持久性库,它可以让我将数据结构写入磁盘并重新加载。

与使用文本文件的“传统”方法相比,我为什么/何时这样做?

编辑:实际上这不是表达问题的有用方式。我的意思是什么情况下泡菜会更容易/更方便,什么时候会给我带来麻烦?什么样的数据或设计模式适合泡菜?

【问题讨论】:

标签: python pickle data-persistence


【解决方案1】:

当您想要存储非文本、不易与其他库(JSON、msgpack 等)序列化的 Python 对象,并且不想编写自己的序列化和反序列化代码时。

一般来说,pickle 应该是最后的序列化和反序列化方法:速度不快(msgpack 更快更紧凑),不安全(永远不要使用pickle 作为 cookie 或其他客户端可访问数据的存储格式!),不可互操作(不存在非 Python 语言的实现)......但它适用于其他地方通常不支持的对象和数据类型(尽管不是所有 Python 对象)。

【讨论】:

    【解决方案2】:

    使用 pickle 或类似工具,您可以获得可用于重构这些对象的对象的文本表示。如果没有像 pickle 这样的东西,你就不能不编写自己的持久性代码。

    【讨论】:

      猜你喜欢
      • 1970-01-01
      • 1970-01-01
      • 2011-04-05
      • 1970-01-01
      • 2011-01-18
      • 2011-08-18
      • 2017-03-21
      • 2011-06-09
      • 1970-01-01
      相关资源
      最近更新 更多