如何将 Python 对象更改为 XML?

mdo*_*dob 5 python xml xml-serialization

我希望将 Python 对象转换为 XML 数据。我试过 lxml,但最终不得不编写自定义代码来将我的对象保存为 xml,这并不完美。

我正在寻找更像 pyxser 的东西。不幸的是 pyxser xml 代码看起来与我需要的不同。

例如我有我自己的班级 Person

Class Person:
    name = ""
    age = 0
    ids = []
Run Code Online (Sandbox Code Playgroud)

我想把它转换成 xml 代码,看起来像

<Person>
    <name>Mike</name>
    <age> 25 </age>
    <ids>
        <id>1234</id>
        <id>333333</id>
        <id>999494</id>
   </ids>
</Person>
Run Code Online (Sandbox Code Playgroud)

我没有在 lxml.objectify 中找到任何接受对象并返回 xml 代码的方法。

Mar*_*ers 2

最好是相当主观的,我不确定在不了解您的要求的情况下是否可以说出最好的。然而,Gnosis之前已被推荐用于将 Python 对象序列化为 XML,因此您可能想从它开始。

来自 Gnosis 主页:

Gnosis Utils 包含几个用于 XML 处理的 Python 模块,以及其他常用工具:

  • xml.pickle(将对象序列化为 XML 或从 XML 序列化对象)
  • API 与标准 pickle 模块兼容)
  • xml.objectify(将任意 XML 文档转换为 Python 对象)
  • xml.validity(通过 DTD 或 Schema 强制执行 XML 有效性约束)
  • xml.indexer(全文索引/搜索)
  • 还有很多...

另一个选项是lxml.objectify

  • 您可以添加一个正在序列化的类的示例吗? (2认同)