python配置yaml
我们在做自动化的过程中无论是接口自动化还是UI自动化都会存在很多数据,我们对于自动化中如何存放这些数据也是很重要一点,如果写在代码里的话,每次更换数据就有点繁琐,我们可以通过一个文件存放这些数据,然后再我们需要这些数据的时候直接进行调用,对于这些数据的管理有很多种如:excel,yaml,ini,conf,今天先介绍一种yaml。
yaml
yaml(yaml不是标记语言)是一种人类可读的数据序列化语言。它通常用于配置文件,但也用于数据存储(例如调试输出)或传输(例如文档标题)。
yaml支持的类型:标量(例如字符串,整数和浮点数),列表和关联数组。
yaml的基本语法:
1、大小写敏感;
2、使用缩进表示层级关系,只可以使用空格;
3、列表中项通过“-”表示,字典中的通过“:”表示
4、# 表示注释,和python表示注释一样
yaml的优点:
1、yaml的可读性好;
2、yaml和脚本语言的交互性好;
3、yaml使用实现语言的数据类型;
4、yaml有一个一致的信息模型;
5、yaml易于实现;
6、yaml可以基于流来处理;
7、yaml表达能力强,扩展性好;
安装
pip install pyyaml

yaml创建
这里安静使用的是pycharm,创建一个file,前面文件名称随便,后面文件后缀.yaml


编写yaml
我们可以通过这个yaml可以很清楚的读出来,名字叫做安静,年龄18岁,职业是软件测试工程师,年薪为3K,会的技能有接口测试这个值1K,会的功能测试值2K
# 简介
name: AnJing
age: 18
profession:
name: 软件测试工程师
annual: 3K
skill:
- name1: 接口测试
pay: 1K - name2: 功能测试
pay: 2K
读取yaml
# coding:utf-8
import yaml
# 直接打开读出来
f = open(r'E:\app\Interface\name.yaml','r',encoding='utf-8')
result = f.read()
print(result)
# 转换成字典读出来
a = yaml.load(result)
print(a)

这个时候发现我们的数据是成功的读出来了,但是肯定会卧槽,为啥报错了?哪里出了问题?
禁止警告
我们可以看到这个地方是禁止使用yaml.load(),因为python认为load是不安全的,发出了安全警告,那么我们如何取消警告呢?
yaml.load(result, Loader=yaml.FullLoader)

yaml的其他写法
#1、数值直接以字面量的形式表示
number: 12.30 #2、布尔值用true和false表示
isSet: true
isSet1: false # 3、null用~表示
parent: ~ #4、时间采用 ISO8601 格式。
time1: 2019-11-1 21:59:43.10-05:00 ##5、日期采用复合 iso8601 格式的年、月、日表示。
date: 2019-11-1 #6、YAML 允许使用两个感叹号,强制转换数据类型。
int_to_str: !!str 123
bool_to_str: !!str true
读取yaml具体数值
首先创建一个yaml文件,把测试数据写好,通过字典的形式读取出来,在根据字典的格式进行提取
# 简介
name: AnJing
age: 18
profession:
name: 软件测试工程师
pay: 2K
skill:
- name1: 接口测试
pay: 1K - name2: 功能测试
pay: 2K
根据上述方法,通过字典的方式找到需要的值,然后再取出来
# coding:utf-8
import yaml
# 直接打开读出来
f = open(r'E:\app\Interface\name.yaml','r',encoding='utf-8')
result = f.read()
# 转换成字典读出来
a = yaml.load(result,Loader=yaml.FullLoader)
print(a)
print('我的名字是:%s'%a['name'])
print('我做的职位是:%s'%a['profession']['name'])
print('我今年%s岁'%a['age'])
print('我的年薪是%s'%a['profession']['pay'])
print('我会的技能是{}和{}'.format(a['skill'][0]['name1'],a['skill'][1]['name2'])) -------------------------------------------------------------------------
{'name': 'AnJing', 'age': 18, 'profession': {'name': '软件测试工程师', 'pay': '2K'}, 'skill': [{'name1': '接口测试', 'pay': '1K'}, {'name2': '功能测试', 'pay': '2K'}]}
我的名字是:AnJing
我做的职位是:软件测试工程师
我今年18岁
我的年薪是2K
我会的技能是接口测试和功能测试
python配置yaml的更多相关文章
- Appium+python自动化(三十)- 实现代码与数据分离 - 数据配置-yaml(超详解)
简介 本篇文章主要介绍了python中yaml配置文件模块的使用让其完成数据和代码的分离,宏哥觉得挺不错的,于是就义无反顾地分享给大家,也给大家做个参考.一起跟随宏哥过来看看吧. 思考问题 前面我们配 ...
- python读取yaml配置文件
支持多种语言:python.js.golang.java.c.c++ YAML 语言(发音 /ˈjæməl/ )的设计目标,就是方便人类读写.它实质上是一种通用的数据串行化格式. 它的基本语法规则如下 ...
- Python 配置日志的几种方式
Python配置日志的几种方式 作为开发者,我们可以通过以下3种方式来配置logging: (1)使用Python代码显式的创建loggers,handlers和formatters并分别调用它们的配 ...
- python读取yaml文件,在unittest中使用
python读取yaml文件使用,有两种方式: 1.使用ddt读取 2,使用方法读取ddt的内容,在使用方法中进行调用 1.使用ddt读取 @ddt.ddt class loginTestPage(u ...
- SpringBoot-属性配置yaml自定义属性和值
SpringBoot-属性配置yaml自定义属性和值 SpringBoot-属性配置yaml自定义属性和值 在SpringBoot中yml/yaml文件可以自定义一些属性,以供注入给自定义bean对象 ...
- Anaconda多环境多版本python配置指导
Anaconda多环境多版本python配置指导 字数3696 阅读644 评论0 喜欢0 最近学python,读完了语法后在GitHub找了一些练习来做,由 于学的是python3.x语法,而Git ...
- Python读取Yaml文件
近期看到好多使用Yaml文件做为配置文件或者数据文件的工程,随即也研究了下,发现Yaml有几个优点:可读性好.和脚本语言的交互性好(确实非常好).使用实现语言的数据类型.有一个一致的数据模型.易于实现 ...
- 使用python读取yaml文件
在做APP测试时,通常需要把参数存到一个字典变量中,这时可以将参数写入yaml文件中,再读取出来. 新建yaml文件(android_caps.yaml),文件内容为: platformName: A ...
- python操作YAML文件之pyyaml库
1. YAML简介 YAML是一种被认为可以超越XML.JSON的配置文件,最早接触是Spring Boot,木有想到python也是支持的,遂研究一下. python解析YAML库叫做pyyaml, ...
随机推荐
- .net上传文件,大文件及下载方式汇总(转)
原文地址:http://www.360doc.com/content/19/1219/10/67993814_880731215.shtml Brettle.Web.NeatUpload.dll 文件 ...
- 1001 害死人不偿命的(3n+1)猜想 (15 分)
卡拉兹(Callatz)猜想: 对任何一个正整数 n,如果它是偶数,那么把它砍掉一半:如果它是奇数,那么把 (3n+1) 砍掉一半.这样一直反复砍下去,最后一定在某一步得到 n=1.卡拉兹在 1950 ...
- 如何用python查看自己的电脑有几个核
今天在研究多进程的时候,如果想要充分利用多核CPU资源,最起码的一点你应该知道自己的电脑有几个核. 下面是用python3 的 os 模块来查看自己的电脑是几个核的方法. import os prin ...
- 使用docker部署filebeat和logstash
想用filebeat读取项目的日志,然后发送logstash.logstash官网有相关的教程,但是docker部署的教程都太简洁了.自己折腾了半天,踩了不少坑,总算是将logstash和filebe ...
- 快速搭建用于测试的rtsp协议网络流媒体数据服务
背景: 最近根据项目需求,在平台系统中加入了视频监控显示功能,但是限于没有提供真实可用的监控摄像头数据,通过EasyScreenLive快速搭建了一个rtsp的流媒体服务,下面将实现步骤分享给大家,为 ...
- [转载]——Automatic Tuning of Undo_retention Causes Space Problems (文档 ID 420525.1)
Automatic Tuning of Undo_retention Causes Space Problems (文档 ID 420525.1) 转到底部 In this Document Sy ...
- celery执行异步任务和定时任务
一.什么是Clelery Celery是一个简单.灵活且可靠的,处理大量消息的分布式系统 专注于实时处理的异步任务队列 同时也支持任务调度 Celery架构 Celery的架构由三部分组成,消息中间件 ...
- KubeSphere and Friends|12 月 14 日相约北京,不见不散
如今在容器圈提到 Kubernetes,可谓是无人不知无人不晓.KubeSphere 作为一款面向云原生设计的开源项目,目的是在 Kubernetes 之上构建分布式多租户容器管理平台,提供简单易用的 ...
- 搭建Harbor
搭建Harbor 一.安装准备 二.安装docker-ce 三.安装docker-compose 四.安装harbor 5.1下载安装程序 5.2配置harbor.yml 5.3运行install.s ...
- debug查找主板生产日期
实验环境:XP(XP以上系统没有自带debug) 查询主板生产日期,发现时间为07/02/15 -e命令进行修改日期,尝试将07年改为08年 在查询一下修改完成后的日期,发现日期不变 原因:这块内存是 ...
