-1

这个问题可能被视为主观问题,但我想问一下 SO 用户,Python 最支持哪种常见的结构化文本数据格式。

我最初的选择是:

  • XML
  • JSON
  • 和 YAML

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

我不能只使用 Python 格式(例如 Pickling),因为互操作非常重要,但是处理这些文件的大部分代码都将用 Python 编写,所以我热衷于使用 Python 中支持最强大的格式。

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

谢谢

笔记

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

4

4 回答 4

4

我会选择 JSON,我的意思是 YAML 很棒,但与它的互操作性并不是那么好。
XML 看起来简直是一团糟,而且太胖了。

Python从 2.6 版开始有一个内置的 JSON模块。

于 2010-10-02T05:55:58.460 回答
3

JSON 有很好的 python 支持,它比 XML 更紧凑(如果你只是想转储和加载对象,API 通常更方便)。据我所知,没有开箱即用的 YAML 支持,尽管我还没有真正检查过。在摘要中,由于格式的低开销和广泛的语言支持,我建议使用 JSON,但它确实有点取决于您的应用程序 - 如果您在已经建立应用程序的空间中工作,格式他们使用可能更可取,即使他们在技术上存在缺陷。

于 2010-10-02T05:57:06.103 回答
1

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

但是,如果您正在做一些更简单的事情,那么您最好使用更简单的格式,例如 yaml 或 json。我听说过“json 转换”,但不知道这项技术有多成熟,也不知道 Python 对它的访问有多发达。

于 2010-10-02T06:08:32.163 回答
0

在这三个中几乎都是一样的。使用更容易互操作的。

于 2010-10-02T05:54:39.520 回答