yaml
一、简介
YAML是“yaml ain't Markuo Language”的缩写,即YAML是一种简洁的非标记语言,使用空白、缩进、分行组织语言,从而使数据更加简洁易读。
YAML通常用来做配置文件。例如自动化测试中,测试用例使用yaml文件格式,会更方便灵活。
二、基本规则
1、大小写敏感
2、使用缩进表示层级关系
3、缩进的空格数目不重要,只要相同层级的元素左侧对齐即可
4、#表示单行注释
5、字符串可以不用引号,也可以使用单引号或者双引号
三、python中的使用
python中安装pyyaml模块,来读取使用yaml格式文件
yaml.load()方法:将一个yaml格式文档转换成python对象
四、示例
1、字典
使用冒号,表示键值对;冒号后面必须要有空格,否则就不是键值对,而是字符串;相同缩进(左侧对齐)的键值对属于同一个字典。
#使用冒号,表示键值对,冒号后面必须要有空格 #同一缩进的所有键值对属于一个字典 str1: xiaomei #字符串可以不使用引号 str2: 'xiaohua mei' #字符串中有空格,需要放在引号中 str3: 'xiaomei\n haha' #单引号对特殊字符不转义 str4: "xiaomei\n haha" #双引号对特殊字符转义 str5: "my name's hanmeimei" #字符串中有单引号,可以使用双引号括起来 str6: 'my name''s hanmeimei' #字符串中有单引号,也可以使用单引号转义 str7: 'my name"s hanmeimei' #字符串中有双引号,可以使用单引号括起来 str8: 这是一段 多行字符串 #字符串可以多行,从第二行开始,必须有一个单空格缩进。换行会被转为空格
在python中使用yaml模块,查看一下这个yaml文件
import yaml f=open('login.yml',encoding='utf-8') res=yaml.load(f) #将yaml格式文档转换成python对象 print(res,'\n') #打印文件内容 print(res.get('str3'),'\n') #打印str3的值 print(res.get('str4')) #打印str4的值
运行结果如下:
{'str1': 'xiaomei', 'str2': 'xiaohua mei', 'str3': 'xiaomei\\n haha', 'str4': 'xiaomei\n haha', 'str5': "my name's hanmeimei", 'str6': "my name's hanmeimei", 'str7': 'my name"s hanmeimei', 'str8': '这是一段 多行字符串'} xiaomei\n haha xiaomei haha
2、list
使用"-";"-"后面必须要有空格,否则就不是list,而是字符串;相同缩进(左侧对齐)的属于同一list。
list的嵌套,通过缩进实现,当然,list和字典可以相互嵌套,也是通过缩进实现,如下:
people: - name: 小明 age: 16 - name: 小花 age: 17
使用在python中使用yaml模块,查看一下这个文本,运行结果如下:
{'people': [{'name': '小明', 'age': 16}, {'name': '小花', 'age': 17}]}