python解析yaml文件

学习目标

  • 掌握python对yaml文件的读写操作

1. PyYaml库安装

PyYAML为python解析yaml的库.
安装:pip3 install -U PyYAML

2. python对yaml文件的操作

2.1 读取yaml文件

使用的方法:

  • yaml.load(stream, Loader=Loader)
    • stream 是等待读取的文件对象

准备yaml文件

Search_Data:
      search_test_001:
        value: 456
        expect: [4,5,6]
      search_test_002:
        value: "你好"
        expect: {"value":"你好"}

python代码

import yaml

with open("./search_page.yaml", "r") as f:
  data = yaml.load(f)
  print(data)

# 执行结果
{'Search_Data': {
          'search_test_002': {'expect': {'value': '你好'}, 'value': '你好'}, 
          'search_test_001': {'expect': [4, 5, 6], 'value': 456}
            }
}

2.2 写入文件内容

使用的方法:

  • yaml.dump(data, stream, **kwds)
    • Data: 等待写入的数据,类型为字典
    • stream: 打开文件对象
    • encodig: utf-8, 设置写入的编码格式
    • allow_unicode: True/False

准备数据:

{'Search_Data': {
          'search_test_002': {'expect': {'value': '你好'}, 'value': '你好'}, 
          'search_test_001': {'expect': [4, 5, 6], 'value': 456}
            }
}

python代码

import yaml

data = {'Search_Data': {
          'search_test_002': {'expect': {'value': '你好'}, 'value': '你好'},
          'search_test_001': {'expect': [4, 5, 6], 'value': 456}
            }
}

# 要设置编码格式,否则会出现中文乱码
with open('./yaml_hello.yaml', 'w', encoding='utf-8',allow_unicode=True) as f:
    yaml.dump(data, f)

执行结果:

Search_Data:
  search_test_001:
    expect:
    - 4
    - 5
    - 6
    value: 456
  search_test_002:
    expect:
      value: 你好
    value: 你好  # 设置编码后不出现乱码