1.PyYAML官方教程
PyYAML官方教程
PyYAML是码解Python的一个YAML解析器和发射器。
安装
简单安装,码解从源代码安装,码解请下载源代码包PyYAML-5.1.tar.gz并进行解压。码解转到目录PyYAML-5.1,码解运行安装命令。码解佛祖代码源码若需使用比纯Python版本快的码解LibYAML绑定,则需下载并安装 LibYAML。码解运行安装命令以使用基于LibYAML的码解解析器和发射器。注意,码解纯Python和基于LibYAML的码解解析器和发射器之间存在细微差异。
常见问题解答
未正确转储的码解词典没有嵌套集合。这是码解正确的输出,尽管嵌套映射的码解样式不同。默认情况下,码解PyYAML选择集合的样式,如果集合具有嵌套集合则为块样式,画图公式源码否则为流样式。若希望始终以块样式序列化集合,请将dump()的参数default_flow_style设置为False。
Python 3支持从3.版本开始,PyYAML和LibYAML绑定为Python3提供完整支持。这是PyYAML API在Python 2和Python 3版本之间的差异的简短概述。
教程
从导入yaml包开始。加载YAML使用yaml.load或yaml.safe_load函数。买酒源码yaml.load将YAML文档转换为Python对象。yaml.safe_load限制了构造任意Python对象的能力,仅允许简单的Python对象如整数或列表。python对象可以被标记为安全,以便被yaml.safe_load识别。导出YAML使用yaml.dump函数。pyyaml支持多种关键字参数以指定发射器的格式细节。
Constructors,prism源码学习 representers, resolvers
定义应用程序特定标签。最简单的方法是定义yaml.YAMLObject的子类。yaml.YAMLObject使用元类魔术注册Constructors和Representers。如果你不想使用元类,可以使用函数yaml.add_constructor和yaml.add_represent注册Constructors和Representers。例如,为Dice类添加一个Constructor和一个Representer。
YAML语法
YAML语法介绍在YAML规范的第2章。查看YAML cookbook,开发视频源码专注于Ruby实现,并使用旧的YAML1.0语法。在这里,将介绍最常见的YAML构造以及相应的Python对象。文档是零个或多个文档的集合。Block序列和Block映射分别由-和:表示。Flow集合语法与Python中列表和字典构造函数的语法相似。标量有5种样式:plain、单引号、双引号、literal和折叠。
Aliases别名
使用YAML表示任意图形结构的对象。需要从文档的不同部分引用同一对象时,使用锚点和别名。PyYAML现在完全支持递归对象。
Tags标签
用于表示YAML节点的类型。标准YAML标签定义于yaml.org/type/index.htm...。标签可能是隐含的或显式的。没有显式定义标记的plain标量受到隐式标记解析的约束。
YAML标记和Python类型
下表描述了如何将具有不同标记的节点转换为Python对象。在Python 3中,str对象被转换为!!str标量、bytes对象被转换为!!binary标量。出于兼容性原因,标记!!python/str和!!python/unicode仍然受支持,并转换为str对象。为了表示静态Python对象,使用复杂的!!python/name标记。例如,函数yaml.dump表示为!python/name:yaml.dump。类似地,模块使用标记表示!python/module。