Warning: file_get_contents(/data/phpspider/zhask/data//catemap/2/python/318.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
Python 序列化表单数据-pickle还是XML?_Python_Xml_Django_Serialization_Pickle - Fatal编程技术网

Python 序列化表单数据-pickle还是XML?

Python 序列化表单数据-pickle还是XML?,python,xml,django,serialization,pickle,Python,Xml,Django,Serialization,Pickle,我正在尝试保存表单数据,我想知道是否应该使用Python的本机或某种XML序列化程序。我想使用django的,但它们似乎适合于使用wit模型,而不是常规的Python字典/对象 我想要序列化的对象几乎完全由字符串(可能还有整数)组成,看起来像这样: data = { 'var1': "foo", 'var2': "bar", 'var3': ['bar', 'foo', 'moo', 'fish'], 'var4': 42 } 我想保存它,因为我需要能够在将来的某个时候基于这些

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

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

data = {
  'var1': "foo",
  'var2': "bar",
  'var3': ['bar', 'foo', 'moo', 'fish'],
  'var4': 42
}
我想保存它,因为我需要能够在将来的某个时候基于这些值呈现HTML页面

我应该继续保存pickle对象,还是应该将其保存为XML?我不认为使用XML有什么好处,因为我不打算在django之外访问它。我做了错误的决定吗

几点注意:

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

  • 在选择一个序列化格式时,有很多事情需要考虑,而且你还没有真正给出你所要求的任何序列化特征,所以很难提出一个好的建议。也就是说,如果您不需要读取Python以外的数据,并且不存在安全隐患,PACKLE是一个合理的默认选择。

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

    json呢?它是轻量级的、可读的、可移植的,对于基本类型(字符串、int、dict、列表),序列化/反序列化非常简单


    我尽可能地坚持规范化的db模式,但在少数情况下,存储序列化内容实际上是“不那么糟糕”的解决方案,我选择json,至少我可以在大多数编程语言中使用我的数据。

    json呢?它是轻量级的、可读的、可移植的,对于基本类型(字符串、int、dict、列表),序列化/反序列化非常简单


    我尽可能地坚持规范化的db模式,但在少数情况下,存储序列化内容实际上是“不那么糟糕”的解决方案,我选择json,至少我可以在大多数编程语言中使用我的数据。

    是的,我实际上从未考虑过json,但它实际上是一个非常好的选择,因为我不必从/到客户端JavaScript进行任何翻译。是的,我实际上从未考虑过JSON,但它实际上是一个非常好的选择,因为我不必从/到客户端JavaScript进行任何翻译。