如何将Python对象更改为XML?
我希望将Python对象转换为XML数据。我尝试过lxml,但最终不得不编写自定义代码将对象保存为xml,这并不完美 我在找更像pyxser的东西。不幸的是,pyxserxml代码看起来与我需要的不同 例如,我有自己的班级成员如何将Python对象更改为XML?,python,xml,xml-serialization,Python,Xml,Xml Serialization,我希望将Python对象转换为XML数据。我尝试过lxml,但最终不得不编写自定义代码将对象保存为xml,这并不完美 我在找更像pyxser的东西。不幸的是,pyxserxml代码看起来与我需要的不同 例如,我有自己的班级成员 Class Person: name = "" age = 0 ids = [] 我想把它转换成xml代码 <Person> <name>Mike</name> <age> 25 &
Class Person:
name = ""
age = 0
ids = []
我想把它转换成xml代码
<Person>
<name>Mike</name>
<age> 25 </age>
<ids>
<id>1234</id>
<id>333333</id>
<id>999494</id>
</ids>
</Person>
迈克
25
1234
333333
999494
我在lxml.objectify中找不到任何接受object并返回xml代码的方法。Best是一个相当主观的方法,我不确定在不了解更多需求的情况下说什么是最好的方法。但是,建议将Python对象序列化为XML,因此您可能希望从这开始 从Gnosis主页: Gnosis Utils包含几个用于XML处理的Python模块,以及其他常用工具:
- xml.pickle(从xml序列化对象)
- API(与标准pickle模块兼容)
- objectify(将任意xml文档转换为Python对象)
- xml.validity(通过DTD或模式强制xml有效性约束)
- xml.indexer(全文索引/搜索)
- 还有很多
class Person:
...
def toXml( self):
print '<Person>'
print '\t<name>...</name>
...
print '</Person>'
班级人员:
...
def toXml(自身):
打印“
打印“\t…”。。。
...
打印“
或者您可以使用XSLT转换Gnosis或pyxser输出。相关的可能重复:打印等价于XML的文本与序列化为XML不同。然后序列化包含<或<或任何其他XML特殊字符的字段,所有内容都会分离。甚至不要开始走这条路——你永远看不到它的尽头。你能添加一个被序列化的类的例子吗?对于最近的读者来说,gnosis早已过时了。我甚至无法安装它而不弄乱它的
setup.py
,然后它无法解析某些东西,寻找该语言中不再存在的对象属性。@PavelKomarov那么选择的最新库是什么呢?我只想保存和加载一个python对象,不幸的是,我必须使用xml。为什么这么难?我一直在谷歌上搜索,似乎没有一个“3行或更少”的解决方案。我最终编写了自己的递归解决方案,利用Python的反射来遍历对象结构。