版权声明:本文为博主原创文章,遵循 CC 4.0 BY-SA 版权协议,转载请附上原文出处链接和本声明。
1、简介
YAML是一个可读性高,用来表达数据序列化的格式。最明显的特征是:以数据为中心,而不是以标记语言为重点,通过缩进程度的不同来表达层次结构式的数据结构。
其语法特点有:(1)大小写敏感(2)使用缩进表示层级关系(3)缩进时不允许使用Tab键,只允许使用空格(4)缩进的空格数目不重要,只要相同层级的元素左侧对齐即可
yaml下载地址:http://pyyaml.org/wiki/PyYAML。或者安装完python后,直接在cmd用‘pip install pyyaml’安装。
2、yaml数据类型
(1)纯量
数据最小的单位,不可以再分割。类似于Python中单个变量。
num: 1
(2)list数组
与Python的list数组结构类似,数组元素使用“-”开头,也可以根据缩进进行数组嵌套。
fruits: ['apple','pear']
(3)对象
对象的一组键值对,使用冒号结构表示。类似Python中的字典数据结构。
platformName: Android
platformVersion: 6.0.1
注意:冒号后面一定要有空格!
(4)数据嵌套
A、python写法:
{‘name’:‘Tom Smith’,‘age’:37,‘spouse’:{‘name’:‘Jane Smith’,‘age’:25},‘childern’:[{‘name’:‘Jimmy Smith’,‘age’:15},{‘name’:‘Jenny Smith’,‘age’:12}]}
B、yaml写法:
userInfo.yaml
userInfo.yaml
name: Tom
age: 35
spouse:
name: Jane
age: 25
childen:
-name: Jimmy
age:15
-name: Jenny
age: 12
3、yaml读取数据
from ruamel import yaml
#读取yaml文件
file=open('F:\\Python\\appium_advance\\yaml\\userInfo.yaml','r',encoding="utf-8")
data=yaml.load(file, Loader=yaml.RoundTripLoader)
print(data)
print(data['name'])
print(data['age'])
print(data['spouse'])
print(data['spouse']['name'])
print(data['spouse']['age'])
print(data['children'])#第一个孩子
print(data['children'][0]['name'])
print(data['children'][0]['age'])
print(data['children'][1]['name'])#第二个孩子
print(data['children'][1]['age'])
4、yaml修改数据
file1=open('F:\\Python\\appium_advance\\yaml\\userInfo.yaml','w',encoding="utf-8")
data['age']=36#修改数据age: 35
yaml.dump(data, file1, Dumper=yaml.RoundTripDumper)
file1.close()
部分文章粉丝可见。