python 中的 XML 对象序列化,有 Gnosis 的替代品吗?

2023-12-20

一段时间以来,我一直在使用一个名为“gnosis-utils”的包,它为 Python 提供了 XML pickling 服务。这个类工作得相当好,但是在过去的四年里它似乎被它的开发人员忽视了。

当我们最初选择 gnosis 时,它是 Python 唯一的 XML 序列化工具。 Gnosis 的优点是它提供了一组类,其功能与内置的 Python XML pickler 非常相似。它生成的 XML 对于 python 开发人员来说很容易阅读,但对于非 python 开发人员来说却很混乱。

现在项目已经发展壮大,我们有了一个新的需求:我们需要能够与喜欢 Java 或 .Net 的同事交换 XML。这些非Python开发人员不会使用Python——他们打算直接生成XML,因此我们需要简化XML的格式。

那么有没有 Gnosis 的替代品呢?我们的要求:

  • 必须在 Python 2.4 / Windows x86 32 位上运行
  • 输出必须是 XML,尽可能简单
  • API 必须尽可能类似于 Pickle
  • 性能并不是很重要

当然,我们可以简单地适应 Gnosis,但是我们更愿意简单地使用已经提供我们所需功能的组件(假设它存在)。


那么您正在寻找一个可以为您的对象生成任意 XML 的 Python 库?您不需要控制格式,因此您不会费心实际编写一些东西来迭代数据的相关属性并使用现有工具之一生成 XML?

这似乎是个坏主意。任意 XML 序列化听起来并不是一个好的前进方式。任何包含pickle所有功能的格式都会变得丑陋、冗长并且使用起来非常糟糕。这不会简单。它不能很好地翻译成Java。

您的数据是什么样的?

如果您准确地告诉我们您需要 pickle 的哪些方面(以及为什么 lxml.objectify 不能满足这些要求),我们将能够更好地为您提供帮助。

您是否考虑过使用 JSON 进行序列化?它易于解析,原生支持类似 python 的数据结构,并且具有广泛的支持。作为一个额外的好处,它不会像本机 pickle 模块那样将您的代码开放给各种邪恶的利用。

老实说,如果您绝对必须使用 XML,那么您需要硬着头皮定义格式,并使用标准 XML 工具构建序列化器。考虑 JSON。

本文内容由网友自发贡献,版权归原作者所有,本站不承担相应法律责任。如您发现有涉嫌抄袭侵权的内容,请联系:hwhale#tublm.com(使用前将#替换为@)

python 中的 XML 对象序列化,有 Gnosis 的替代品吗? 的相关文章

随机推荐