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}]}

 

posted @ 2018-06-04 10:28  小蕊-zr  阅读(262)  评论(0编辑  收藏  举报