https://www.jianshu.com/p/3d078059021d
https://blog.csdn.net/lmj19851117/article/details/78843486/
1、load(): 返回一个对象
我们先创建一个yml文件,config.yml:
name: Tom Smithage: 37spouse:name: Jane Smithage: 25children:- name: Jimmy Smithage: 15- name1: Jenny Smithage1: 12
读取yml文件:
import yamlf = open(r'E:\AutomaticTest\Test_Framework\config\config.yml')y = yaml.load(f)print (y)
结果:
{'name': 'Tom Smith', 'age': 37, 'spouse': {'name': 'Jane Smith', 'age': 25}, 'children': [{'name': 'Jimmy Smith', 'age': 15}, {'name1': 'Jenny Smith', 'age1': 12}]}• 1
2、load_all(): 返回一个迭代器
如果string或文件包含几块yaml文档,你可以使用yaml.load_all来解析全部的文档。
import yaml
f = '''
---
name: James
age: 20
---
name: Lily
age: 19
'''
y = yaml.load_all(f)
for data in y:
print(data)
执行结果:
{'name': 'James', 'age': 20}
{'name': 'Lily', 'age': 19}
3、yaml.dump(): 将一个python对象生成为yaml文档
import yaml
aproject = {'name': 'Silenthand Olleander',
'race': 'Human',
'traits': ['ONE_HAND', 'ONE_EYE']
}
print(yaml.dump(aproject, f))
执行结果:
name: Silenthand Olleander
race: Human
traits: [ONE_HAND, ONE_EYE]
yaml.dump接收的第二个参数一定要是一个打开的文本文件或二进制文件,yaml.dump会把生成的yaml文档写到文件里
import yaml
aproject = {'name': 'Silenthand Olleander',
'race': 'Human',
'traits': ['ONE_HAND', 'ONE_EYE']
}
f = open(r'E:\AutomaticTest\Test_Framework\config\config.yml','w')
print(yaml.dump(aproject, f))
4、yaml.dump_all(): 将多个段输出到一个文件中
import yaml
obj1 = {"name": "James", "age": 20}
obj2 = ["Lily", 19]
with open(r'E:\AutomaticTest\Test_Framework\config\config.yml', 'w') as f:
yaml.dump_all([obj1, obj2], f)
输出到文件:
{age: 20, name: James}
---
[Lily, 19]
5、yaml文件的持续写入
import yaml
inputdata={
"url":'https://www.baidu.com/',
"driver":['ie','chrome','firfox']
}
with open('source.yaml','a',encoding='utf-8') as f: #'a'代表持续写入,‘w’代表覆盖写入
yaml.dump(inputdata, f)
print('well done')
