yaml 文件规则
1.区分大小写;
2.使用缩进表示层级关系;
3.使用空格键缩进,而非Tab键缩进
4.缩进的空格数目不固定,只需要相同层级的元素左侧对齐;
5.文件中的字符串不需要使用引号标注,但若字符串包含有特殊字符则需用引号标注;
6.注释标识为#
数据类型
1.键值对
user: root
passwd: 123456
value : ~
*注意:后面有空格,~代表None
=>输出
{'passwd': 123456, 'user': 'test', 'value': None}
2.列表
- value1
- value2
- ~
*注意-后面有空格
=>输出
['value1', 'value2', None]
3.复合数据类型
log:
- file1: test1.log
- file2: test2.log
file3: test3.log
=>输出
{'log': [{'file1': 'test1.log'}, {'file3': 'test3.log', 'file2': 'test2.log'}]}
4.强制转换 !!
!!str true #
#读
safe_load方法:
import yaml
f=open('test.yaml','r')
data=yaml.safe_load(f)
print data
safe_load_all方法,生成器
import yaml
f=open('test.yaml','r')
data=yaml.safe_load_all(f)
for d in data:
print d
#写
safe_dump方法
import yaml
value1={'log':{'name':'test','state':True}}
f=open('test.yaml','w')
yaml.safe_dump(value1,f)
safe_dump_all方法,将多个段输出到一个文件中
import yaml
value1={'log':{'name':'test','state':True}}
value2={'log':{'name':'test2','state':False}}
f=open('test.yaml','w')
yaml.safe_dump_all([value1,value2],f)