YAML是一个可读性高,以数据为中心,用于表达数据序列化的格式。目前可以使用数种编程语言或脚本语言(如C、C++、Java、Python等)对其进行解析。
YAML以递归、空白、符号、缩进的编写形式,可以简单表达清单、散列表,标量等数据形态,常用作数据结构、各种配置文件、大纲、邮件等类别的表达与编辑。
1
对象的表示
在YAML中,使用冒号结构表示 key: value,冒号后面要加一个空格,如下图:
复杂的对象可以使用键值对+层级缩进进行表示,如下图:
使用对象的格式表示json数据、页面元素中的id、text或xpath等有很高的易读性。
2
数组的表示
在YAML中,以 - 开头的行表示数组,如下图(也可使用行内表示):
复杂数组如下所示:
该图表示student的属性是数组,该数组中的每一个元素有id和name的属性。
3
YAML在Python中的读取
YAML示例文件结构如下图(使用冒号结构表示键值对,使用缩进表示层级):
使用python语言读取YAML文件代码示例如下:
*注:
1.需导入yaml库;
2.yaml5.1版本后因yaml.load(file)不安全而废弃,需要指定Loader,禁止执行任意函数。代码中加入如下脚本避免警告出现:
yaml.warnings({'YAMLLoadWarning': False});
3.读取时,先按照层级关系读取,再读取键值对值。
4.编写YAML文件时,可根据具体需求进行复合组合,如数组+键值对,数组+纯量等方式。