gpt4 book ai didi

python - python 中的 XML 对象序列化,是否有 Gnosis 的替代方案?

转载 作者:数据小太阳 更新时间:2023-10-29 02:13:20 24 4
gpt4 key购买 nike

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

当时我们最初选择 gnosis,它是唯一用于 Python 的 XML 序列化工具。 Gnosis 的优势在于它提供了一组类,其功能与内置的 Python XML pickler 非常相似。它生成 Python 开发人员认为易于阅读但非 Python 开发人员感到困惑的 XML。

随着项目的发展,我们有了新的需求:我们需要能够与喜欢 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数据结构,支持面广。作为一个额外的好处,它不会像 native pickle 模块那样向各种恶意攻击开放您的代码。

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

关于python - python 中的 XML 对象序列化,是否有 Gnosis 的替代方案?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/4135836/

24 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com