一、介绍

  1. YAML是一种简洁的非标记语言
  2. YAML以数据为中心,使用空白、缩进、分行组织数据,从而使表达更加简洁易懂

二、基本规则

  1. 大小写敏感
  2. 使用缩进表示层级关系
  3. 禁止使用Tab缩进,只能使用空格键
  4. 缩进长度没有限制,只要元素对齐就表示这些元素属于一个层级
  5. 使用“#”表示注释
  6. 字符串可以不用引号标注

三、yaml库安装

支持两种库:PyYAML 和 ruamel.yaml

这里选择PyYAML库,使用pip安装:

pip install PyYaml

四、yaml常用数据结构

1.字典

使用冒号(:)表示键值对,同一缩进的所有键值对属于一个map

方式一:(注意冒号后必须有一个空格)

key: value1
key2: value2

方式二:使用流式(flow)语法

{key: value, key2: value2}

方式三:使用缩进表示层级关系

key:
key: value
key2: value

对应结果:{'key': {'key': 'value', 'key2': 'value'}}

2.列表

使用连字符(-)表示,连字符后必须使用一个空格

方式一:

- hello
- world

方式二:使用流式(flow)语法

[hello, world]

方式三:使用缩进表示层级关系

- python
- hello
- world

对应结果:['python', ['hello', 'world']]

3.纯量scalar

yaml中提供了多种纯量,包括整数、浮点数、字符串、null、日期、布尔值、时间

boolean:
- TRUE # true, True都可以
- FALSE # false, False都可以 float:
- 3.14
- 6.8523015e+5 # 可以使用科学计算法 int:
- 123
- 0b1010_0111_0100_1010_1110 # 二进制表示 null:
nodeName: 'node'
parent: ~ # 使用~表示null string:
- 哦豁
- 'hello world' # 可以使用双引号或者单引号包裹特殊字符
- newline
newline2 # 字符串可以折成多行,每一行会被转化成空格 date:
- 2019-11-14 # 日期必须使用ISO 8601格式,即YYYY-mm-dd datetime:
- 2019-11-14T08:56:30+08:00 # 时间使用ISO 8601格式,时间和日期之间使用T连接,最后使用+号代表时区

五、使用方法

1.引入yaml模块

import yaml

2.读取yaml数据

  • 打开yaml文件
  • 使用yaml的load()方法,并且可以传入Loader=yaml.FullLoader解决告警的问题

我们可以将appium的启动会话参数使用yaml配置文件管理:

import pprint
import yaml with open('desired_caps.yaml', encoding='utf-8') as fs:
data = yaml.load(fs, Loader=yaml.FullLoader) pprint.pprint(data)

使用以上代码将内容读取出来,结果如下:

基于python的yaml配置文件使用方法的更多相关文章

  1. python读取yaml配置文件

    支持多种语言:python.js.golang.java.c.c++ YAML 语言(发音 /ˈjæməl/ )的设计目标,就是方便人类读写.它实质上是一种通用的数据串行化格式. 它的基本语法规则如下 ...

  2. 基于python+appium+yaml安卓UI自动化测试分享

    结构介绍 之前分享过一篇安卓UI测试,但是没有实现数据与代码分离,后期维护成本较高,所以最近抽空优化了一下.不想看文章得可以直接去Github,欢迎拍砖大致结构如下:   结构.png testyam ...

  3. Python读取ini配置文件封装方法

    读取配置文件 ----rw_ini.py from configparser import ConfigParser def read_config(config_file_path:str): &q ...

  4. Python解析yaml配置文件

    1.代码测试 import yaml fd = open('fileName.yaml', 'r') dict_tmp = yaml.load(fd) fd.close() print dict_tm ...

  5. python pyyaml操作yaml配置文件

    在测试工作中,可以使用yaml编写测试用例,执行测试用例时直接获取yaml中的用例数据进行测试(如:接口自动化测试) 1.什么是yaml 是一种可读的数据序列化语言,通常用于配置文件 非常简洁和强大, ...

  6. python的logging模块之读取yaml配置文件。

    python的logging模块是用来记录应用程序的日志的.关于logging模块的介绍,我这里不赘述,请参见其他资料.这里主要讲讲如何来读取yaml配置文件进行定制化的日志输出. python要读取 ...

  7. python笔记14-读取yaml配置文件(pyyaml)

    yaml简介 1.yaml [ˈjæməl]: Yet Another Markup Language :另一种标记语言.yaml 是专门用来写配置文件的语言,非常简洁和强大,之前用ini也能写配置文 ...

  8. Appium + python -yaml配置文件

    在线安装:pip install yaml import yamlimport os # 获取当前脚本所在文件夹路径curpath = os.path.dirname(os.path.realpath ...

  9. 基于Python的XSS测试工具XSStrike使用方法

    基于Python的XSS测试工具XSStrike使用方法 简介 XSStrike 是一款用于探测并利用XSS漏洞的脚本 XSStrike目前所提供的产品特性: 对参数进行模糊测试之后构建合适的payl ...

随机推荐

  1. docker-compose部署

    一.部署compose docker compose可以方便我们快捷高效地管理容器的启动.停止.重启等操作,它类似于linux下的shell脚本,基于yaml语法,在该文件里我们可以描述应用的架构,比 ...

  2. zabbix 安装部署

    环境:CentOS7 机器 两台  分别为server 和 client zabbix下载网址:http://repo.zabbix.com 本次操作使用zabbix4.0 网址:http://rep ...

  3. hdu 2586 How far away?(LCA模板题+离线tarjan算法)

    How far away ? Time Limit: 2000/1000 MS (Java/Others)    Memory Limit: 32768/32768 K (Java/Others)To ...

  4. Java String 如何加双引号

    public class Test{ public static void main(String[] args){ String str1 = "\"name\"&qu ...

  5. 判断机器CPU的大小端模式并将数据转换成小端形式

    首先看一下概念 Little-Endian 就是低位字节排放在内存的低地址端,高位字节排放在内存的高地址端 Big-Endian 就是高位字节排放在内存的低地址端,低位字节排放在内存的高地址端. 第一 ...

  6. ASP.NET CORE 使用Consul实现服务治理与健康检查(2)——源码篇

    题外话 笔者有个习惯,就是在接触新的东西时,一定要先搞清楚新事物的基本概念和背景,对之有个相对全面的了解之后再开始进入实际的编码,这样做最主要的原因是尽量避免由于对新事物的认知误区导致更大的缺陷,Bu ...

  7. Springboot整合redis步骤

    一.加入依赖 <dependency> <groupId>com.github.spt-oss</groupId> <artifactId>spring ...

  8. JMeter多脚本间的启动延时

    JMeter做压测时,当需要多个jmx脚本依次执行时,需要用到“启动延时”,即间隔可设置的时间后启动运行下一个jmx脚本. 实现“启动延时”的方法有2个. 方法一.利用JMeter线程组中的" ...

  9. C语言笔记 04_运算符

    运算符 运算符是一种告诉编译器执行特定的数学或逻辑操作的符号.C 语言内置了丰富的运算符,并提供了以下类型的运算符: 算术运算符 关系运算符 逻辑运算符 位运算符 赋值运算符 杂项运算符 算术运算符 ...

  10. .Net Core组件化视图(部分视图)

    .Net Core组件化视图(部分视图) 1.背景 1.以前我们使用.Net的时候使用部分视图的方式在,.Net Core 中能在单独处理逻辑的部分视图没有了,但是我们还是想使用现在的.Net Cor ...