Python支持哪种结构化文本格式?

时间:2010-10-02 05:52:50

标签: python text structured-data

这个问题可能被认为是主观的,但我想问SO用户哪种常见的结构化文本数据格式最适合Python。

我最初的选择是:

  • XML
  • JS​​ON
  • 和YAML

这三个中的哪一个最容易在Python中使用(即具有最佳的库支持/性能)......或者是否有另一种我没有提到的格式在Python中得到更好的支持。

我不能使用仅Python格式(例如Pickling),因为interop非常重要,但处理这些文件的大部分代码都是用Python编写的,所以我很想使用支持最强的格式在Python中。

对于大多数用例,CSV或固定列文本也可能是可行的,但我更喜欢灵活性更高的可扩展格式。

谢谢

注意

关于互操作,我将使用Builder最初从Ruby生成这些文件,但Ruby不会再次使用这些文件。

4 个答案:

答案 0 :(得分:4)

我会选择JSON,我的意思是YAML很棒,但是它的互操作并不是很好。
看看并且有太多的脂肪,XML只是一个丑陋的混乱。

自2.6版本以来,Python有一个built-in JSON模块。

答案 1 :(得分:3)

JSON具有出色的python支持,它比XML更紧凑(如果您只是尝试转储和加载对象,API通常会更方便)。虽然我还没有真正检查过,但YAML并没有开箱即用的支持。在摘要中,我建议使用JSON,因为格式开销低,语言支持范围广,但它确实依赖于您的应用程序 - 如果您在已经建立应用程序的空间中工作,格式他们使用可能更好,即使他们在技术上有缺陷。

答案 2 :(得分:1)

我认为这很大程度上取决于您需要对数据做些什么。如果您要构建一个复杂的数据库并对其进行处理和转换,我怀疑您的XML会更好。我发现lxml模块在​​这方面非常有用。它完全支持xpath和xslt等标准,并且这种支持在本机代码中实现,因此您将获得良好的性能。

但如果你做的事情更简单,那么你可能最好使用像yaml或json这样的简单格式。我听说过“json转换”,但不知道这项技术有多成熟,或者Python对它的访问是如何发展的。

答案 3 :(得分:0)

在这三者中几乎完全相同。使用哪个更易于互操作。