Bull's blog Bull's blog
首页
工作
  • 分类
  • 标签
  • 归档
关于

Bull

首页
工作
  • 分类
  • 标签
  • 归档
关于
  • 马上消费

  • 斗虫

    • 基础课件

      • python基础和条件语句
      • 基础数据类型_改
      • 函数
      • 1 函数练习
      • 32文件操作
      • 3 异常
      • 面向对象
      • 1面向对象案例-学生管理系统
      • 1Python基础练习题
      • 自动化测试理论
      • 2 接口测试基础
      • 3 requests
      • 4 代码
      • 5 简单封装
      • 1 pytest
      • 签名的设计
      • 接口case设计
      • 3 新建一个接口
      • x装饰器语法
      • httprunner2.x工具快速入门
      • httprunner3.x的简介
      • Flask框架
      • 了解任务
      • mock服务
      • UI自动化策略
      • PageObject模式
      • pytest参数化进阶
      • pytest框架生成报告
      • Yaml运用
      • 日志类模板
      • 持续集成
      • jdk配置
      • Linux基础
      • Jenkins主从测试任务
      • conda管理项目环境
      • 面试题-栈结构
      • 面试题-找众数
      • 正交测试法
      • 装饰器
      • 综合面试题_原版
    • RF

  • 天眼查

  • 某米

  • 工作经历
  • 斗虫
  • 基础课件
wangyang
2023-09-02

Yaml运用

# YAML是什么?

YAML是一种简洁的非标记语言。以数据为中心,使用自由格式组织数据。多种编程语言均支持yaml语法,故而我们可以用它进行跨模块、跨编码语言的交互

# YAML文件支持的数据结构

yaml文件的一个特点是,文件中支持数据结构(依靠解释库,将yaml文件中的数据解析为相应类型。在python中依靠yaml模块)

yaml支持的数据类型
纯量
  整数
  小数
  字符串
  布尔值
  空值
序列
映射
嵌套数据
1
2
3
4
5
6
7
8
9
10
#可以使用‘#’来声明备注,备注不会被读取
#纯量(scalars):单个的、不可再分的值(如:字符串、bool值、整数、浮点数、时间、日期、null等)
str: Hello World!(会被解析为字符串)
#如果其中有空格或特殊字符,可以使用引号标注
str2: 'Hello World!'(会被解析为字符串)
int: 110
float: 3.141
bool: true  # or false
None: null  # 也可以用 ~ 号来表示 null
time: 2016-09-22t11:43:30.20+08:00  # 写法参考ISO 8601(是日期和时间的表示方法)
date: 2016-09-22

#序列,在python中会被解析为‘列表’
list: [var1,var2,var3]

#映射,在:后要+一个空格来分割:键: 值
dict: {小明: 优秀,小刚: 卓越}

#嵌套
list2: [var1,var2,{var3: 字典}]
dict2: {小李: [优秀,96分],小张: [卓越,100分]}
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21

# Python中读取yaml

使用yaml库(pip install pyyaml /pip3 install pyyaml)

1.使用python-open函数读取yml文件到内存中,并赋值给一个 "文件对象"

2.使用yaml解析库中的safe_load()函数,对"文件对象"进行解析

3.yaml解析后的数据,是一个"字典"

import yaml

with open("./yam_stu.yml",encoding='utf-8') as file:
    data = yaml.safe_load(file)

print(data['str'])
print(data['str2'])
print(data['int'])
print(data['float'])
print(data['bool'])
print(data['None'])
print(data['time'])
print(data['date'])

print('*'*30)

# 列表
print(data['list'])
print('*'*30)
# 字典
print(data['dict'])
print('*'*30)
# 嵌套
var = data['list2']
print(var)
print(type(var))
print(type(var[2]))

print('*'*30)

var = data['dict2']
print(var)
print(type(var))
print(type(var['小李']))
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34

# 将yaml格式的数据写入到文件

流程

1.在代码中组装一个"字典"格式的变量

2.使用open()函数,w模式进行数据的写入(注意编码格式)

3.使用yaml提供的dump()函数,将字典数据储存到文件中

import yaml

emp_info = { 'name': 'Lex',
             'department': 'SQA',
             'salary': 8000,
             'annual leave entitlement': [5, 10]}
data = yaml.dump(emp_info)
print(data)

with open('yaml_write.yml','w',encoding="utf-8") as f:
    yaml.dump(emp_info, f)
1
2
3
4
5
6
7
8
9
10
11
#python自动化#自动化入门
上次更新: 2023/09/05, 02:16:11
pytest框架生成报告
日志类模板

← pytest框架生成报告 日志类模板→

最近更新
01
30.快速实现接口重构测试---deepdiff库使用
09-21
02
概述
09-07
03
概述
09-07
更多文章>
Theme by Vdoing | Copyright © 2018-2025 Evan Xu | MIT License
  • 跟随系统
  • 浅色模式
  • 深色模式
  • 阅读模式