1.PyYAML官方教程
PyYAML官方教程
PyYAML是码下Python的一个YAML解析器和发射器。
安装
简单安装,码下从源代码安装,码下请下载源代码包PyYAML-5.1.tar.gz并进行解压。码下转到目录PyYAML-5.1,码下运行安装命令。码下Ecshop商品模板源码若需使用比纯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函数。aes源码例程yaml.load将YAML文档转换为Python对象。yaml.safe_load限制了构造任意Python对象的能力,仅允许简单的Python对象如整数或列表。python对象可以被标记为安全,以便被yaml.safe_load识别。导出YAML使用yaml.dump函数。pyyaml支持多种关键字参数以指定发射器的格式细节。
Constructors,荣耀手机源码 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。