python yaml 常用操作
在进行接口自动化测试时或python项目配置时,经常会用到yaml文件来配置数据信息,以下是用python操作yaml文件的常用操作。
首先,yaml并非是python自带的模块,需要自行进行安装,安装方式可以为:
pip install pyyaml
1、yaml 文件规则:
区分大小写 使用缩进表示层级关系 文件中的字符串不需要使用引号标注 注释标识为:# 号,只允许单行注释
2、yaml 文件数据结构:
对象:键值对的集合(字典形式) 键值对用冒号”:” 间隔,冒号之间需要用空格分隔 如: phone: 151xxxxxxxx addr: xx路xx号 得到结果: {“phone”:”151xxxxxxxx”,”addr”:”xx路xx号”} 数组:列表的形式 数组前需要有短横杠”-”符号,符号与值之间需要用空格分隔 如: - value1 - value2 得到结果: [“value1”,”value2”] None值可用null 或 ~ 符号表示
python 读取yaml文件
1、导入yaml模块(import yaml)
2、以txt的文档流形式读取yaml文件
3、将读取的yaml文件内容格式转化
import yaml
class CallYaml(object): """ 调用yaml 方法,操作yaml文件 """ def read_yaml(self,yaml_file): """ 读取yaml文件 @file 文件路径 """ with open(yaml_file,"r",encoding="utf-8") as file: file_data = file.read() file.close()
#将读取到的数据进行格式化 yaml_data = yaml.full_load(file_data) return yaml_data
#个人订单person_order.yaml
- name: jctang phone: 15118814488 order: orderID: gid0010012 orderID: gid0012032 - name: jctang1 phone: 15118814488 order: orderID: gid0010159 orderID: gid0012068
得到结果为:
[{'name': 'jctang', 'phone': 15118814488, 'order': {'orderID': 'gid0012032'}}, {'name': 'jctang1', 'phone': 15118814488, 'order': {'orderID': 'gid0012068'}}]
python 写入yaml文件
import yaml
class CallYaml(object): """ 调用yaml 方法,操作yaml文件 """ def write_yaml(self,file_name,content): """ 写入yaml文件 @file_name 存放的文件路径 """ with open(file_name,"w",encoding="utf8") as file: yaml.dump(data=content,stream=file,allow_unicode=True)
file.close() return True