资讯专栏INFORMATION COLUMN

【自动化测试】Python 读取.yaml格式文件

Anchorer / 1752人阅读

摘要:字符串布尔值整数浮点数时间日期类型套类型如下类型前面加上符号,且数字读出来的是或者纯量纯量最基本不可再分的值。打印结果也允许另一种写法,将所有键值对写成一个行内对象打印结果四读取文件内容示例五写入文件内容示例

yaml,Yet Another Markup Language,另一种标记语言。专门用来写配置文件的语言,简洁、强大。


一、安装

命令:pip install pyyaml

二、基本语法规则

大小写敏感

与Python类似,使用缩进来表示层级关系。

注意,缩进时不允许使用键,只允许空格。
??(ps我尝试使用了,但是只要对齐了也没有报错啊)

缩进的空格数目没关系,只需保证相同层级的元素左对齐

注释使用“#”,注释掉一行

三、 yaml支持的数据结构

对象:键值对的集合,又称为映射(mapping)/ 哈希(hashes) / 字典(dictionary)

数组:一组按次序排列的值,又称为序列(sequence) / 列表(list)

纯量(scalars):单个的、不可再分的值。字符串、布尔值、整数、浮点数、Null、时间、日期

(1)dict类型

key:value

user: admin
pwd: 111111
(2) dict套dict类型

如下:

info1:
      user:admin
      pwd:111111
(3)list类型

前面加上‘-’符号,且数字读出来的是int 或者float

-admin: 111111
-host : 222222
(4) 纯量

纯量:最基本、不可再分的值。

1、数值直接以字面量的形式表示
number: 12.30 # {"number": 12.3}

2、布尔值用true和false表示
isSet: true # {"isSet": True}
isSet1: false # {"isSet1": False}

3、null用~表示
parent: ~ # {"parent": None}

4、时间采用 ISO8601 格式
time1: 2001-12-14t21:59:43.10-05:00
# {"time1": datetime.datetime(2001, 12, 15, 2, 59, 43, 100000)}

5、日期采用复合 iso8601 格式的年、月、日表示
date: 2017-07-31
# {"date": datetime.date(2017, 7, 31)}

6、YAML 允许使用两个感叹号,强制转换数据类型
int_to_str: !!str 123
bool_to_str: !!str true # {"bool_to_str": "true"}

(5)数组

1、数组可以采用行内表示法
animal: [Cat, Dog]
# 打印结果:{"animal": ["Cat", "Dog"]}

2、一组连词线开头的行,构成一个数组
animal1: - Cat - Dog - Goldfish
# 打印结果:{"animal1": ["Cat", "Dog", "Goldfish"]}

(6)复合类型

list嵌套dict:

- user : admin
  pwd  : "123456"
- user : host
  pwd  : "111111"

其打印结果:

dict 嵌套list:

group1:
    - admin
    - "123456"
group2:
    - host 
    - "1111111"

其打印结果:

(7)字符串

默认不使用引号表示,也可以用单引号和双引号进行表示。

but双引号不会对特殊转义字符进行转义。

单引号中若还有单引号,必须连续使用两个单引号转义

1、字符串默认不使用引号表示
str1: 这是一个字符串

2、如果字符串之中包含空格或特殊字符,需要放在引号之中。
str2: "内容:*字符串"

3、单引号和双引号都可以使用,双引号不会对特殊字符转义
str3: "内容 字符串"
str4: "content string"

4、单引号之中如果还有单引号,必须连续使用两个单引号转义。
s3: "labor""s day"

5、字符串可以写成多行,从第二行开始,必须有一个单空格缩进。换行符会被转为空格

strline: 这是一段
            多行
            字符串

6、多行字符串可以使用|保留换行符,也可以使用>折叠换行

this: |
  Foo
  Bar
that: >
  Foo
  Bar

7、+表示保留文字块末尾的换行,-表示删除字符串末尾的换行。

s4: |
  Foo4
s5: |+
  Foo5
s6: |-
  Foo6
s7: |
  Foo7
(8)对象

1、对象的一组键值对,使用冒号结构表示。
animal: pets
# 打印结果:{"animal": "pets"}

2、Yaml 也允许另一种写法,将所有键值对写成一个行内对象
dict1: { name: Steve, foo: bar }
# 打印结果:{"dict1": {"foo": "bar", "name": "Steve"}}

四、读取yaml文件内容

示例

五、写入yaml文件内容

示例


❤ thanks for watching, keep on updating...

文章版权归作者所有,未经允许请勿转载,若此文章存在违规行为,您可以联系管理员删除。

转载请注明本文地址:https://www.ucloud.cn/yun/42410.html

相关文章

  • Spring Boot 配置文件中的花样,看这一篇足矣!

    摘要:的默认配置文件位置为。比如,我们需要自定义模块的服务端口号,可以在中添加来指定服务端口为,也可以通过来指定应用名该名字在应用中会被注册为服务名。同时,配置内容都对开发人员可见,本身这也是一种安全隐患。 在快速入门一节中,我们轻松的实现了一个简单的RESTful API应用,体验了一下Spring Boot给我们带来的诸多优点,我们用非常少的代码量就成功的实现了一个Web应用,这是传统的...

    pingan8787 评论0 收藏0
  • 做完动化测试,但别让不会汇报毁了你...

    摘要:前端自动化测试百度搜索功能实战可以与结合生成测试报告。以网页版本的百度为例,百度首页呈现的功能新闻网页贴吧知道音乐图片视频地图等,我们以百度网页的搜索功能为例,使用结合自动化测试框架,完成一个搜索功能的测试。 ...

    HelKyle 评论0 收藏0
  • SpringBoot 实战 (三) | 配置文件详解

    摘要:前言如题,今天解析下的配置文件。这时我们就可以用的属性来配置随机数,比如随机字符串随机随机以内的随机数的随机数使用多配置文件很多时候我们开发项目都需要很多套环境,比如有测试环境,开发环境以及生产环境。原因是,是以的编码方式读取配置文件。 微信公众号:一个优秀的废人如有问题或建议,请后台留言,我会尽力解决你的问题。 前言 如题,今天解析下 SpringBoot 的配置文件。 自定义属性加...

    chenjiang3 评论0 收藏0
  • python-mqtt动化测试

    摘要:基础数据获取地址端口发送订阅主题请求参数获取这里是发送的函数 # -*- coding:utf-8 -*-from multiprocessing import Processimport paho.mqtt.publish as publishfrom Data.data import *...

    scq000 评论0 收藏0

发表评论

0条评论

Anchorer

|高级讲师

TA的文章

阅读更多
最新活动
阅读需要支付1元查看
<