将消息格式序列化为xml

时间:2010-03-16 17:39:05

标签: 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':1,'b':2,'c':3,'d':4})

3 个答案:

答案 0 :(得分:4)

它需要是XML吗?这是pickle模块的常用域。

但是,不,没有标准的serialize-Python-object-to-XML库。 (我有一段时间我写的,它没有发表,更不用说“标准”。)有像lxml这样的库,用于将XML转换为Python对象并返回,通常sax,{{用于读取XML的1}}和dom库。

答案 1 :(得分:2)

“使用json / yaml / whitespace”评论放在一边(我想你有理由这样做,而不是去pickle / json),

你可以尝试非常pythonic elementtree库(在standardlib中),甚至可以使用google的一些建议:搜索“将python字典转换为xml”

(听起来太粗鲁了......眨眨眼睛)

看看你的例子,A​​和B是什么?整数?字符串? classmethods?

答案 2 :(得分:1)

  • 你为什么使用XML?通常有更好的解决方案,例如JSON,它具有足够的便携性和标准性。
  • 最简单的方法可能是使用YAML。 YAML的主要表示不是XML,而是有一种规范的方式(YAXML)将YAML序列化数据表示为XML。