Python之ruamel.yaml模块详解| ruamel.yaml与pyyaml的区别

Posted 虫无涯

tags:

篇首语:本文由小常识网(cha138.com)小编为大家整理,主要介绍了Python之ruamel.yaml模块详解| ruamel.yaml与pyyaml的区别相关的知识,希望对你有一定的参考价值。

Python之ruamel.yaml模块详解(三)| ruamel.yaml与pyyaml的区别


接前文:

注:以下内容翻译自:https://yaml.readthedocs.io/en/latest/pyyaml.html

12 默认支持Yaml1.2

  • PyYAML支持YAML 1.1标准,ruamel.YAML支持2009年发布的YAML 1.2;
  • YAML 1.2放弃了对几个未提及的功能的支持,包括Yes、No、On、Off
  • YAML 1.2不再接受以0开头且仅由数字字符组成的字符串作为八进制,需要使用0o[0-7]+(对于八进制,零+小写o+一个或多个八进制字符)指定此类字符串;
  • YAML 1.2不再支持sexagesimals,因此字符串标量12:34:56不需要引用;
  • \\/JSON兼容性转义;
  • 用指数正确解析浮点标量。

除非YAML文档加载了显式version==1.1或文档以以下开头,否则ruamel.yaml将以1.2版本加载文档。

% YAML 1.1

13 Py2和Py3重新整合

  • ruamel.yaml重新集成了Python 2和3源代码,运行在Python 2.7(CPythonPyPy)、3.3、3.4、3.5和3.6上(2016年中期,对2.6的支持已经下降);
  • 它更易于扩展和维护,因为只有一小部分代码是特定于Python版本的。

14 修复

  • 转储时,ruamel.yaml跟随标量上的indent关键字参数;
  • ruamel.yaml允许:在纯标量中,只要它们后面没有空格(根据规范)。

15 测试

  • ruamel.yaml使用toxpy.test进行测试。除了新的测试之外,原始的PyYAML测试框架也在tox运行中调用;
  • 在将版本推送到PyPI之前,将在所有支持的Python版本上调用tox,并且必须在PyPI以及flake8/pep8上传递。

16 API

  • 从0.15开始,使用ruamel.yamlAPI出现了分歧,可以更容易地添加新功能。

以上是关于Python之ruamel.yaml模块详解| ruamel.yaml与pyyaml的区别的主要内容,如果未能解决你的问题,请参考以下文章

Python之ruamel.yaml模块详解

Conda 'ImportError:没有名为 ruamel.yaml.comments 的模块'

如何在 Python 中使用 ruamel.yaml 从 YAML 文件中获取注释?

使用 ruamel.yaml 修改 YAML 会添加额外的新行

python ruamel.yaml 包,如何获取标题注释行?

python接口自动化测试二十九:yaml配置文件的写和读