Python之-操作yaml

本文介绍了Python操作yaml文件的详细步骤,包括yaml环境的搭建、语法规则、读取与写入方法,以及yaml的引用。内容涵盖yaml的安装、基本语法、读取yaml文件的方法、写入yaml内容的技巧,并探讨了yaml在自动化测试框架中的应用。
摘要由CSDN通过智能技术生成

操作yaml文件

1.yaml介绍

yaml:Yet Another Markup Language的缩写。Yaml是专门用来写配置文件的语言,非常简洁和强大,远比json格式方便。

  • Python搭建yaml环境

pip install PyYaml

pip install --ignore-installed PyYAML

  • yaml的语法规则

大小写敏感   

使用缩进表示层级关系   

缩进时不允许使用Tab键,只允许使用空格。   

缩进的空格数目不重要,只要相同层级的元素左侧对齐即可   

使用#表示注释    字符串可以不用引号标注

  • yaml的样式

1. 对象:键值对的集合(字典形式)

键值对用冒号”:” 间隔,冒号之间需要用空格分隔

如:

phone: 151xxxxxxxx addr: xx路xx号

得到结果:

{“phone”:”151xxxxxxxx”,”addr”:”xx路xx号”}

2. 数组:列表的形式

数组前需要有短横杠”-”符号,符号与值之间需要用空格分隔

如:

- value1 - value2

得到结果:

[“value1”,”value2”]

3. 特殊类型

字符串默认不使用引号表示。但是字符串之中包含空格或特殊字符,需要放在引号之中

str: '内容: 字符串'

None值可用null 或 ~ 符号表示

单引号和双引号都可以使用,双引号不会对特殊字符转义。

s1: '内容\n字符串' s2: "内容\n字符串"

其他内容可参考:https://www.ruanyifeng.com/blog/2016/07/yaml.html?f=tt

4.多个yaml在一个文档中,使用---分割

yaml文件示例

---
student:
  - name: lucy,
    age: 18
    class: 19
    grade: { English: 98,Math: 50,Art: 33 }
  - name: momo,
    age: 33
    class: 20
    grade: { English: 55,Math: 100,Art: 98 }
---
reqesttdata:
  - { shouji: 13456755448,appkey: 0c818521d38759e1 }
  - { shouji: 13456755449,appkey: 0c818521d38759e1 }
  - { shouji: 13456755450,appkey: 0c818521d38759e1 }

读取方法示例

def get_more_than_one_yaml_for_one_file():
    f = open(file=data_file_path1,mode="r")
    data = yaml.safe_load_all(f)#读取一个yaml文件中多个文档需要使用yaml.load_all())
    return data
test_data = get_more_than_one_yaml_for_one_file()
for i in test_data:
    print(i)
    """
    结果是:
    {'student': [{'name': 'lucy,', 'age': 18, 'class': 19, 'grade': {'English': 98, 'Math': 50, 'Art': 33}}, {'name': 'momo,', 'age': 33, 'class': 20, 'grade': {'English': 55, 'Math': 100, 'Art': 98}}]}
{'reqesttdata': [{'shouji': 13456755448, 'appkey': '0c818521d38759e1'}, {'shouji': 13456755449, 'appkey': '0c818521d38759e1'}, {'shouji': 13456755450, 'appkey': '0c818521d38759e1'}]}
    """
print(list(get_more_than_one_yaml_for_
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值