Python 将消息格式序列化为xml
我有一个python列表Python 将消息格式序列化为xml,python,xml,xml-serialization,Python,Xml,Xml Serialization,我有一个python列表 [ (A,{'a':1,'b':2,'c':3,'d':4}), B,{'a':1,'b':2,'c':3,'d':4}), ... ] 我想知道是否有将此类列表序列化为xml的标准库,或者是否应该将其手工编码到文件中 编辑:添加了详细信息 假设这用于构造消息,以便 message=A(Feild属性{'A':1,'b':2,'c':3,'d':4})| b字段属性{'A':1,'b':2,'c':3,'d':4})| c字段
[
(A,{'a':1,'b':2,'c':3,'d':4}),
B,{'a':1,'b':2,'c':3,'d':4}),
...
]
我想知道是否有将此类列表序列化为xml的标准库,或者是否应该将其手工编码到文件中
编辑:添加了详细信息
假设这用于构造消息,以便
message=A(Feild属性{'A':1,'b':2,'c':3,'d':4})| b字段属性{'A':1,'b':2,'c':3,'d':4})| c字段属性{'A':1,'b':2,'c':3,'d':4})它需要是XML吗?这是
pickle
模块的常用域
但是,不存在将Python对象序列化到XML库的标准。(我有一个我不久前写的库,它还没有出版,更不用说“标准”了。)有像lxml
这样的库,用于将XML转换为Python对象,以及用于读取XML的常用sax
、dom
和expat
库。- 为什么要使用XML?通常有更好的解决方案,比如JSON,它具有很强的可移植性和标准性
- 最简单的方法可能是使用YAML。YAML的主要表示形式不是XML,但有一种规范方法(YAXML)将YAML序列化数据表示为XML
看看你的例子,A和B是什么?整数?串?classmethods?
pickle
不安全,仅限于在单一语言中使用。几乎总是有更好的序列化选项。ElementTree
确实是解析和编写XML最好的方法。特别是,解析它要比使用sax
或dom
好得多。它是一个消息模型,需要导出到Excel,因此需要使用XML。@anijhaw:考虑到这个限制,我可以说没有标准库。我甚至不确定您的示例如何构成“消息模型”。如果我试图导入Excel,我会使用csv
库,然后使用Excel的csv导入。@Mike:没有指定安全性和语言独立性,后者要求输入比Python元组列表和给定的字典更通用<代码>pickle也只需很少的实现工作量就可以完成它的工作,远远低于不是标准模块的元素树
。这就是为什么我想知道为什么需要XML。。。现在我们来了。您说要将它导入Excel,因此它需要是XML。它是否需要符合特定的格式,或者您可以提供任何格式的XML并从那里使用它?导入到Excel的XML意味着Excel的XML格式。(*.xlsx)由于涉及Excel。。。当你说A
和B
时,这些应该是行标签吗?'a'
、'b'
等是否为列标签?仍然没有解释将您的消息=
行与Excel或XML关联。好的,a、b应为列标签,很难解释。在某种程度上,我自己解决了这个问题,但是通过手工编码XML,这几乎总是错误的。:)我检查了elementtree,这个列表给出了一个类中的元数据,这个类描述了一条消息,所以a、B、C是消息的字段,而Dictionary给出了一些特定于字段的值