python-读写yaml文件数据

文章目录

  • 一、应用场景
  • 二、yaml封装
    • 1、yaml文件
    • 2、读写yaml文件
    • 3、返回结果
  • 三、思路解析

一、应用场景

在做接口自动化时,想把yaml文件里的请求参数打印出来,但是有些接口的请求参数是动态的(上个接口返回的),所以需要先获取动态参数的数据,再写入yaml文件,打印出来的参数才是真正要传的。

二、yaml封装

1、yaml文件

db:
  host: 192.168.0.1
  name: user
  password: 123456
  port: 3306

2、读写yaml文件

代码如下(示例):

import os
import yaml

class YamlHandler:
    def __init__(self,filename):
        self.filename= filename

    def read_yaml(self):
        """读取yaml文件数据"""
        with open(self.filename,encoding='utf-8') as f:
            return yaml.load(f.read(),Loader = yaml.FullLoader)
            


    def write_yaml(self,data,encoding='utf-8'):
        """在yaml文件写入数据"""
        with open(self.filename,encoding=encoding,mode='w') as f:
            return yaml.dump(data,stream=f,allow_unicode = True)

if __name__ == '__main__':
    file_path = os.path.join(os.path.dirname(os.path.abspath("__file__")),r"..\data\test_mysql.yml")
    #读取..\data\test_mysql.yml配置文件
    data = YamlHandler(file_path).read_yaml()
    print("修改前数据:",data)
    #将data数据写入yaml
    data['db']["name"] = 'root'
    YamlHandler(file_path).write_yaml(data)
    print("修改后数据:",data)


3、返回结果

代码如下(示例):

修改前数据: {'db': {'host': '192.168.0.1', 'name': 'user', 'password': 123456, 'port': 3306}}
修改后数据: {'db': {'host': '192.168.0.1', 'name': 'root', 'password': 123456, 'port': 3306}}

三、思路解析

1、先读取yaml文件里的数据
2、将读取的数据再进行细分,找到要修改那个字段的数据,确定修改内容
3、再执行修改的操作
4、查看是否修改成功,前后对比数据

你可能感兴趣的:(python接口自动化,Python,python)