一、介绍

  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. DRF源码系列分析

    DRF源码系列分析 DRF源码系列分析--版本 DRF源码系列分析--认证 DRF源码系列分析--权限 DRF源码系列分析--节流

  2. python学习-os引入

    # 引入import os # 路径处理 -- 外部资源-os # 获取当前的工作路径workspace = os.getcwd() # os模块下的getcwd函数print(workspace) ...

  3. 【译】在React中实现条件渲染的7种方法

    原文地址:https://scotch.io/tutorials/7-ways-to-implement-conditional-rendering-in-react-applications 借助R ...

  4. CSS3新特性简单总结(持续补充常用到的情景)

    1.CSS3边框border-radius 左上右下box-shadow box-shadow: 水平阴影(可负值,必) 垂直阴影(可负值,必) 模糊距离 阴影尺寸 颜色颜色 inset(将外部阴影改 ...

  5. 【CHRIS RICHARDSON 微服务系列】微服务架构中的进程间通信-3

    编者的话 |本文来自 Nginx 官方博客,是微服务系列文章的第三篇,在第一篇文章中介绍了微服务架构模式,与单体模式进行了比较,并且讨论了使用微服务架构的优缺点.第二篇描述了采用微服务架构的应用客户端 ...

  6. Nginx 常用配置方式说明

    原文内容来自于LZ(楼主)的印象笔记,如出现排版异常或图片丢失等问题,可查看当前链接:https://app.yinxiang.com/shard/s17/nl/19391737/7619763f-1 ...

  7. Redis-API

    Redis-API 简介 Redis 是一个基于内存的高效的键值行非关系型数据库,存取效率极高. python提供了两个类:分别为Redis和StrictRedis来实现Redis的命令操作.Redi ...

  8. 设备数据通过Azure Functions 推送到 Power BI 数据大屏进行展示(1.准备工作)

    本案例适用于开发者入门理解Azure Functions/ IoT Hub / Service Bus / Power BI等几款产品. 主要实战的内容为: 将设备遥测数据上传到物联网中心, 将遥测数 ...

  9. 形如 T(n) = a * T(n/b) + f(n) 的时间复杂度计算方法

    形如 T(n) = a * T(n/b) + f(n) 的时间复杂度计算方法 有一种方法叫做主方法(Master method)是用来专门计算这种形式的时间复杂度的,方法具体如下: 下边举例进行说明: ...

  10. ElasticSearch 安装, 带视频

    疯狂创客圈 Java 高并发[ 亿级流量聊天室实战]实战系列 [博客园总入口 ] 架构师成长+面试必备之 高并发基础书籍 [Netty Zookeeper Redis 高并发实战 ] 疯狂创客圈 高并 ...