https://www.jianshu.com/p/3d078059021d
    https://blog.csdn.net/lmj19851117/article/details/78843486/
    1、load(): 返回一个对象
    我们先创建一个yml文件,config.yml:

    1. name: Tom Smith
    2. age: 37
    3. spouse:
    4. name: Jane Smith
    5. age: 25
    6. children:
    7. - name: Jimmy Smith
    8. age: 15
    9. - name1: Jenny Smith
    10. age1: 12

    读取yml文件:

    1. import yaml
    2. f = open(r'E:\AutomaticTest\Test_Framework\config\config.yml')
    3. y = yaml.load(f)
    4. print (y)

    结果:

    1. {'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')