【问题标题】:Serializing form data - pickle or XML?序列化表单数据 - pickle 还是 XML?
【发布时间】:2012-07-06 21:25:25
【问题描述】:

我正在尝试保存表单数据,我想知道是否应该使用 Python 的原生 pickle 或某种 XML 序列化程序。我想使用 django 的 serializers,但这些似乎适用于机智模型,而不是常规的 Python 字典/对象。

我要序列化的对象几乎完全由字符串(也可能是整数)组成,看起来像这样:

data = {
  'var1': "foo",
  'var2': "bar",
  'var3': ['bar', 'foo', 'moo', 'fish'],
  'var4': 42
}

我想保存它,因为我需要能够在将来的某个时候根据这些值呈现 HTML 页面。

我应该继续保存腌制对象 - 还是应该将其保存为 XML?我没有看到使用 XML 的任何优势,因为我不打算在 django 之外访问它。我是否做出了错误的决定?

几点说明:

  • 这不是我想保存在会话或缓存中的内容,因为我想无限期地保留这些表单的历史记录
  • 表单的格式/布局可能会发生变化,因此创建数据库架构来保存这些信息是不切实际的。

【问题讨论】:

    标签: python xml django serialization pickle


    【解决方案1】:

    在选择序列化格式时需要考虑很多事情,而您并没有真正给出问题中所需的任何序列化特征,因此很难提出好的建议。也就是说,如果您不需要在 python 之外读取数据并且您没有安全顾虑,那么 pickle 是一个合理的默认选择。

    【讨论】:

      【解决方案2】:

      json 呢?它是轻量级的、可读的、可移植的,并且序列化/反序列化对于基本类型(字符串、整数、字典、列表)来说非常简单。

      我尽量坚持规范化的数据库模式,但在少数情况下,存储序列化的东西实际上是“不太糟糕”的解决方案,我选择 json,至少我可以将我的数据与大多数编程语言一起使用.

      【讨论】:

      • 是的,我实际上从未考虑过 JSON,但它实际上是一个非常好的选择,因为我不需要从/到客户端 JavaScript 进行任何转换。
      猜你喜欢
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 2016-10-24
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      相关资源
      最近更新 更多