【问题标题】:What structured text format is the best supported in Python?Python 最支持哪种结构化文本格式?
【发布时间】:2011-04-20 03:54:03
【问题描述】:

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

我最初的选择是:

  • XML
  • JSON
  • 和 YAML

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

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

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

谢谢

注意

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

【问题讨论】:

  • 这些文件是人类可读的有多重要?

标签: python text structured-data


【解决方案1】:

我会选择 JSON,我的意思是 YAML 很棒,但与它的互操作性并不是那么好。
XML 看起来只是一个丑陋的烂摊子 并且 有太多的脂肪。

Python 从 2.6 版开始就有一个 built-in JSON 模块。

【讨论】:

  • 是否有您推荐的特定 JSON 库或者我应该只使用 - 在标准库中导入 json
  • @slomojo 标准库工作正常;我不知道它有什么问题。
【解决方案2】:

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

【讨论】:

    【解决方案3】:

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

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

    【讨论】:

      【解决方案4】:

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

      【讨论】:

        猜你喜欢
        • 1970-01-01
        • 1970-01-01
        • 2010-11-09
        • 2021-05-16
        • 1970-01-01
        • 2019-04-08
        • 2013-08-10
        • 2013-08-08
        • 1970-01-01
        相关资源
        最近更新 更多