0

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

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

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

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

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

几点注意事项:

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

2 回答 2

2

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

于 2012-07-06T21:31:19.340 回答
1

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

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

于 2012-07-07T14:48:26.730 回答