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 MD5文件生成码
Jan 12 Python
Python文件夹与文件的操作实现代码
Jul 13 Python
python判断给定的字符串是否是有效日期的方法
May 13 Python
Python unittest模块用法实例分析
May 25 Python
Python操作mongodb的9个步骤
Jun 04 Python
python调用百度语音识别api
Aug 30 Python
python如何以表格形式打印输出的方法示例
Jun 21 Python
Python 分享10个PyCharm技巧
Jul 13 Python
django之自定义软删除Model的方法
Aug 14 Python
基于python实现雪花算法过程详解
Nov 16 Python
三个python爬虫项目实例代码
Dec 28 Python
python manim实现排序算法动画示例
Aug 14 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调用数据库的存贮过程!
2006/10/09 PHP
使用PHP如何实现高效安全的ftp服务器(二)
2015/12/30 PHP
laravel 5异常错误:FatalErrorException in Handler.php line 38的解决
2017/10/12 PHP
thinkPHP5框架分页样式类完整示例
2018/09/01 PHP
javascript 解决表单仍然提交即使监听处理函数返回false
2010/03/14 Javascript
我用的一些Node.js开发工具、开发包、框架等总结
2014/09/25 Javascript
JS逆序遍历实现代码
2014/12/02 Javascript
nodejs下打包模块archiver详解
2014/12/03 NodeJs
详解JavaScript中setSeconds()方法的使用
2015/06/11 Javascript
javascript下拉列表菜单的实现方法
2015/11/18 Javascript
ES6字符串模板,剩余参数,默认参数功能与用法示例
2017/04/06 Javascript
Bootstrap实现各种进度条样式详解
2017/04/13 Javascript
jquery实现限制textarea输入字数的方法
2017/09/06 jQuery
JavaScript for循环 if判断语句(学习笔记)
2017/10/11 Javascript
Vue filter介绍及其使用详解
2017/10/21 Javascript
jquery如何实现点击空白处隐藏元素
2017/12/05 jQuery
微信小程序实现红包雨功能
2018/07/11 Javascript
javascript function(函数类型)使用与注意事项小结
2019/06/10 Javascript
JavaScript 链表定义与使用方法示例
2020/04/28 Javascript
python在Windows8下获取本机ip地址的方法
2015/03/14 Python
python实现爬虫统计学校BBS男女比例之多线程爬虫(二)
2015/12/31 Python
Python 装饰器深入理解
2017/03/16 Python
老生常谈Python startswith()函数与endswith函数
2017/09/08 Python
pandas.DataFrame删除/选取含有特定数值的行或列实例
2018/11/07 Python
推荐技术人员一款Python开源库(造数据神器)
2020/07/08 Python
Python datetime 如何处理时区信息
2020/09/02 Python
HTML5微信播放全屏问题的解决方法
2017/03/09 HTML / CSS
高中数学教师求职信
2013/10/30 职场文书
特色冷饮店创业计划书
2014/01/28 职场文书
《狼》教学反思
2014/03/02 职场文书
毕业生工作求职信
2014/06/30 职场文书
党员对照检查材料思想汇报(党的群众路线)
2014/09/24 职场文书
村主任群众路线教育实践活动个人对照检查材料思想汇报
2014/10/01 职场文书
2014年个人委托书范本
2014/10/13 职场文书
毕业生自我鉴定范文
2019/05/13 职场文书
一文搞懂PHP中的抽象类和接口
2022/05/25 PHP