微信公众号搜"智元新知"关注
微信扫一扫可直接关注哦!

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

有一段时间我一直在使用一个名为“gnosis-utils”的软件包,它为Python提供了一个XML pickling服务.这个课程运作得相当好,但在过去的四年中它似乎被它的开发人员忽略了.

在我们最初选择gnosis的时候,它是Python唯一的XML serization工具. Gnosis的优势在于它提供了一组类,其功能与内置的Python XML pickler非常相似.它产生了Python,python开发人员发现它易于阅读,但非python开发人员发现令人困惑.

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

那么Gnosis还有其他选择吗?我们的要求:

>必须适用于Python 2.4 / Windows x86 32位
>输出必须是XML,尽可能简单
> API必须尽可能地与Pickle相似
>表现并不是非常重要

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

解决方法:

那么你要找的是一个python库,为你的对象吐出任意的XML?您不需要控制格式,因此您不必费心去编写迭代数据相关属性内容并使用现有工具之一生成XML?

这似乎是一个坏主意.任意XML序列化听起来不是一个好的方法.任何包含所有pickle功能的格式都会变得丑陋,冗长,而且非常讨厌使用.这不简单.它不会很好地转换为Java.

你的数据是什么样的?

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

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

老实说,如果你绝对必须使用XML,你需要咬紧牙关并定义一种格式,并使用标准的XML工具构建一个序列化器.考虑JSON.

版权声明:本文内容由互联网用户自发贡献,该文观点与技术仅代表作者本人。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如发现本站有涉嫌侵权/违法违规的内容, 请发送邮件至 dio@foxmail.com 举报,一经查实,本站将立刻删除。