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出现了分歧,可以更容易地添加新功能。
目录
相关文章
|
2天前
|
JSON 数据格式 Python
Python标准库中包含了json模块,可以帮助你轻松处理JSON数据
【4月更文挑战第30天】Python的json模块简化了JSON数据与Python对象之间的转换。使用`json.dumps()`可将字典转为JSON字符串,如`{"name": "John", "age": 30, "city": "New York"}`,而`json.loads()`则能将JSON字符串转回字典。通过`json.load()`从文件读取JSON数据,`json.dump()`则用于将数据写入文件。
7 1
|
3天前
|
Python 容器
python内置函数、数学模块、随机模块(二)
python内置函数、数学模块、随机模块(二)
|
3天前
|
索引 Python
python内置函数、数学模块、随机模块(一)
python内置函数、数学模块、随机模块(一)
|
5天前
|
人工智能 安全 Java
Python 多线程编程实战:threading 模块的最佳实践
Python 多线程编程实战:threading 模块的最佳实践
122 5
|
5天前
|
人工智能 数据库 开发者
Python中的atexit模块:优雅地处理程序退出
Python中的atexit模块:优雅地处理程序退出
8 3
|
7天前
|
Python
在Python Web开发过程中:`is`和`==`在Python中的区别是什么?
【4月更文挑战第25天】Python的`is`与`==`用于比较。`is`检查对象是否相同(内存地址一致),而`==`检查值是否相等。例如,`a = [1, 2, 3]`,`b = a`,`c = [1, 2, 3]`,则`a is b`和`a == b`均为True,但`a is c`为False,`a == c`为True,因`a`和`b`引用同一对象,而`a`和`c`值虽等但对象不同。
8 1
|
8天前
|
存储 开发者 Python
Python中的argparse模块:命令行参数解析的利器
Python中的argparse模块:命令行参数解析的利器
16 2
|
8天前
|
开发者 Python
Python的os模块详解
Python的os模块详解
16 0
|
4月前
|
存储 IDE 测试技术
玩转数据处理利器:学会使用 YAML 文件轻松处理数据
玩转数据处理利器:学会使用 YAML 文件轻松处理数据
58 0
|
7月前
|
Kubernetes Cloud Native 应用服务中间件
【云原生】使用k8s创建nginx服务—通过yaml文件svc类型暴露
【云原生】使用k8s创建nginx服务—通过yaml文件svc类型暴露
141 0