基于python的yaml配置文件使用方法

一、介绍

  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)

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

posted @ 2019-11-14 09:12  小公瑾  阅读(4035)  评论(2编辑  收藏  举报