【问题标题】:Is there any difference between Pickling and Serialization?酸洗和序列化之间有什么区别吗?
【发布时间】:2015-07-07 11:01:39
【问题描述】:

我在阅读 python 对象时经常遇到这两个术语。但是,酸洗和序列化之间存在混淆,因为我曾在一个地方阅读过

pickle 模块实现了一种算法,用于将任意 Python 对象转换成一系列字节。这个过程也称为 序列化”对象。

如果序列化和酸洗是同一个过程,为什么要为它们使用不同的术语?

【问题讨论】:

  • 酸洗是序列化的一种形式。序列化的统称,也适用于 JSON、XML 等格式。
  • 注意 "...实现 an 算法...",(即不是 算法)暗示还有其他的序列化算法

标签: python serialization pickle


【解决方案1】:

您误读了这篇文章。酸洗和序列化不是同义词,文本也没有声称它们是同义词。

略作解释,文本这样:

该模块实现了一个算法,用于将一个对象转换为一系列字节。 此过程也称为序列化对象。

我故意删除了模块名称pickle。该模块实现了一个过程,一个算法,这个过程通常被称为序列化

该过程还有其他实现。您可以使用 JSON 或 XML 将数据序列化为文本。还有marshal module。其他语言有其他序列化格式; R language has one,所以does Java。等等。

WikiPedia article on the subject

在计算机科学中,在数据存储的上下文中,序列化是将数据结构或对象状态转换为可以存储的格式的过程(例如,在文件或内存缓冲区中,或通过网络连接链路传输)并稍后在相同或另一个计算机环境中重建。

Python 选择了名称pickle,因为它模拟了Modula-3 中处理此问题的过程,也称为酸洗。见Pickles: Why are they called that?

【讨论】:

    【解决方案2】:

    在 python 中,pickle 指的是提供(特定)python 对象序列化的模块。

    序列化本身是一个更笼统的术语。例如python对象也可以序列化成json。

    https://en.wikipedia.org/wiki/Serialization

    【讨论】:

      猜你喜欢
      • 2013-12-30
      • 1970-01-01
      • 1970-01-01
      • 2013-09-13
      • 2017-04-05
      • 2014-09-18
      • 2015-06-14
      • 2011-05-23
      • 2011-02-15
      相关资源
      最近更新 更多