Python读取yaml文件的详细教程


Posted in Python onJuly 21, 2020

yaml简介

1.yaml [ˈjæməl]: Yet Another Markup Language :另一种标记语言。yaml 是专门用来写配置文件的语言,非常简洁和强大,之前用ini也能写配置文件,看了yaml后,发现这个更直观,更方便,有点类似于json格式。在自动化测试用的相当多所以需要小伙伴们要熟练掌握

2.yaml基本语法规则:

  • 大小写敏感
  • 使用缩进表示层级关系
  • 缩进时不允许使用Tab键,只允许使用空格。
  • 缩进的空格数目不重要,只要相同层级的元素左侧对齐即可
  • #表示注释,从这个字符一直到行尾,都会被解析器忽略,这个和python的注释一样

3.yaml支持的数据结构有三种:

  • 对象:键值对的集合,又称为映射(mapping)/ 哈希(hashes) / 字典(dictionary)
  • 数组:一组按次序排列的值,又称为序列(sequence) / 列表(list)
  • 纯量(scalars):单个的、不可再分的值。字符串、布尔值、整数、浮点数、Null、时间、日期

安装yaml

1.使用pip安装pyyaml模块

pip install pyyaml

Python读取yaml文件的详细教程

Python读取yaml文件的详细教程Python读取yaml文件的详细教程

1.python各数据类型在yaml中的书写格式

1.yaml里面的键值对,也就是python里面的字典(dict)数据类型,比如python里面的字典,用yaml如何去写

# python3.6
{
"user": '测试',
"psw": 123456,
}

在yaml文件里可以这样写:

# yaml
user:测试
psw: 123456

字典嵌套字典

# python3.6
"nb1": {
 "user": "测试",
 "psw": "123456,
 }

3.yaml文件里可以这样写:

# yaml
nb1:
 user: 测试
 psw: 123456

序列(list)

1.yaml里面写一个数组,前面加一个‘-'符号,如下

- admin1: 123456
- admin2: 111111
- admin3: 222222

对应python里面的list

[{'admin1': 123456},
{'admin2': 111111}, 
{'admin3': 222222}]

注意:数字读出来的是int或float类型

纯量(str)

1.int和float类型的数字

n1: 12.30

对应python

{'n1': 12.3}

2.布尔值用true和false表示

n2: true 
n3: false

对应python

{'n2': True, 'n3': True}

3.None用~表示

n4: ~

对应python

{'n4': None}

4.时间采用 ISO8601 格式。

time1: 2001-12-14t21:59:43.10-05:00

对应python

{'time1': datetime.datetime(2001, 12, 15, 2, 59, 43, 100000)}

5.日期采用复合 iso8601 格式的年、月、日表示。

date1: 2017-07-31

对应python

{'date1': datetime.date(2017, 7, 31)}

6.使用两个感叹号,强制转换数据类型。

# int转str
n6: !!str 123

对应python

{'n6': '123'}
# bool值转str
n7: !!str true

对应python

{'n7': 'true'}

7.在yaml文件写入以下内容:

n1: 12.30
n2: true
n3: false
n4: ~
time1: 2018-04-18t21:59:43.10+08:00
date1: 2018-04-18
n6: !!str 123
n7: !!str true

python读取结果:

{'n1': 12.3, 
'n2': True, 
'n3': False, 
'n4': None, 
'time1': datetime.datetime(2018, 4, 18, 13, 59, 43, 100000), 
'date1': datetime.date(2018, 4, 18), 
'n6': '123', 
'n7': 'true'}

混合使用

1.list嵌套dict,在yaml里面写入如下内容:

- user: admin1
 psw: '123456'

- user: admin2
 psw: '111111'

- user: admin3
 psw: '222222'

用python读取出来的结果:

[{'user': 'admin1', 'psw': '123456'},
{'user': 'admin2', 'psw': '111111'},
{'user': 'admin3', 'psw': '222222'}]

2.dict嵌套list,在yaml里面写入如下内容:

nub1:
 - admin1
 - '123456'

nb2:
 - admin2
 - '111111'

nb3:
 - admin3
 - '222222'

用python读取出来的结果:

{'nub1': ['admin1', '123456'],
'nb2': ['admin2', '111111'], 
'nb3': ['admin3', '222222']}

3.读取yaml文件

Python读取yaml文件的详细教程

读取login.yaml文件的内容

Python读取yaml文件的详细教程

3.写入数据到yaml文件

Python读取yaml文件的详细教程

Python读取yaml文件的详细教程

总结

到此这篇关于Python读取yaml文件的文章就介绍到这了,更多相关Python读取yaml文件内容请搜索三水点靠木以前的文章或继续浏览下面的相关文章希望大家以后多多支持三水点靠木!

Python 相关文章推荐
由Python运算π的值深入Python中科学计算的实现
Apr 17 Python
Python实现Sqlite将字段当做索引进行查询的方法
Jul 21 Python
python selenium执行所有测试用例并生成报告的方法
Feb 13 Python
Python利用itchat库向好友或者公众号发消息的实例
Feb 21 Python
用python wxpy管理微信公众号并利用微信获取自己的开源数据
Jul 30 Python
使用Python实现文字转语音并生成wav文件的例子
Aug 08 Python
python3 实现爬取TOP500的音乐信息并存储到mongoDB数据库中
Aug 24 Python
用OpenCV将视频分解成单帧图片,图片合成视频示例
Dec 10 Python
Python QT组件库qtwidgets的使用
Nov 02 Python
基于Python模拟浏览器发送http请求
Nov 06 Python
python爬虫分布式获取数据的实例方法
Nov 26 Python
Python中bisect的用法及示例详解
Jul 20 #Python
python为什么要安装到c盘
Jul 20 #Python
python如何代码集体右移
Jul 20 #Python
python接入支付宝的实例操作
Jul 20 #Python
高考考python编程是真的吗
Jul 20 #Python
如何基于Python Matplotlib实现网格动画
Jul 20 #Python
Python常用数据分析模块原理解析
Jul 20 #Python
You might like
php AJAX实例根据邮编自动完成地址信息
2008/11/23 PHP
php实现读取超大文件的方法
2014/07/28 PHP
php实现的mongodb操作类
2015/05/28 PHP
CI框架数据库查询之join用法分析
2016/05/18 PHP
PHP中include和require的区别实例分析
2017/05/07 PHP
ASP.NET jQuery 实例16 通过控件CustomValidator验证RadioButtonList
2012/02/03 Javascript
JQuery中对Select的option项的添加、删除、取值
2013/08/25 Javascript
JS之Date对象和获取系统当前时间详解
2014/01/13 Javascript
js实现文章文字大小字号功能完整实例
2014/11/01 Javascript
基于jQuery实现Div窗口震动特效代码-代码简单
2015/08/28 Javascript
JS实现仿雅虎首页快捷登录入口及导航模块效果
2015/09/19 Javascript
浅析jQuery 3.0中的Data
2016/06/14 Javascript
BootStrap中Datepicker控件带中文的js文件
2016/08/10 Javascript
axios简单实现小程序延时loading指示
2018/07/30 Javascript
简单谈谈javascript高级特性
2019/09/04 Javascript
python实现带声音的摩斯码翻译实现方法
2015/05/20 Python
开始着手第一个Django项目
2015/07/15 Python
python实现堆和索引堆的代码示例
2018/03/19 Python
python 用户交互输入input的4种用法详解
2019/09/24 Python
python,Java,JavaScript实现indexOf
2020/09/09 Python
HTML5 drag和drop具体使用详解
2021/01/18 HTML / CSS
美国彩妆品牌:Coastal Scents
2017/04/01 全球购物
什么是serialVersionUID
2016/03/04 面试题
abstract是什么意思
2012/02/12 面试题
中科创达面试题
2016/12/28 面试题
团员的自我评价
2013/12/01 职场文书
医药代表个人求职信范本
2013/12/19 职场文书
给护士表扬信
2014/01/19 职场文书
家居饰品店创业计划书
2014/01/31 职场文书
电台实习生求职信
2014/02/25 职场文书
委托证明书
2014/09/17 职场文书
个人查摆剖析材料
2014/10/04 职场文书
校车安全管理责任书
2015/05/11 职场文书
Nginx解决403 forbidden的完整步骤
2021/04/01 Servers
sql通过日期判断年龄函数的示例代码
2021/07/16 SQL Server
Win11跳过联网界面创建本地管理账户的3种方法
2022/04/20 数码科技