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功能键的读取方法
May 28 Python
使用Python的PIL模块来进行图片对比
Feb 18 Python
pandas.DataFrame 根据条件新建列并赋值的方法
Apr 08 Python
python筛选出两个文件中重复行的方法
May 31 Python
详解Python列表赋值复制深拷贝及5种浅拷贝
May 15 Python
Django之使用celery和NGINX生成静态页面实现性能优化
Oct 08 Python
python利用dlib获取人脸的68个landmark
Nov 27 Python
Python使用QQ邮箱发送邮件报错smtplib.SMTPAuthenticationError
Dec 20 Python
python实现简单颜色识别程序
Feb 19 Python
解决python和pycharm安装gmpy2 出现ERROR的问题
Aug 28 Python
Python修改DBF文件指定列
Dec 19 Python
python爬虫selenium模块详解
Mar 30 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/12/06 PHP
PHP+FLASH实现上传文件进度条相关文件 下载
2007/07/21 PHP
php array_slice函数的使用以及参数详解
2008/08/30 PHP
Zend Framework动作助手(Zend_Controller_Action_Helper)用法详解
2016/03/05 PHP
Yii配置与使用memcached缓存的方法
2016/07/13 PHP
PHP基于PDO扩展操作mysql数据库示例
2018/12/24 PHP
Laravel第三方包报class not found的解决方法
2019/10/13 PHP
改版了网上的一个js操作userdata
2007/04/27 Javascript
JQuery 选择和过滤方法代码总结
2010/11/19 Javascript
JS动态获取当前时间,并写到特定的区域
2013/05/03 Javascript
JS获取下拉列表所选中的TEXT和Value的实现代码
2014/01/11 Javascript
javascript实现随时变化着的背景颜色
2015/04/02 Javascript
javascript关于open.window子页面执行完成后刷新父页面的问题分析
2015/04/27 Javascript
简介JavaScript中的setTime()方法的使用
2015/06/11 Javascript
jQuery插件实现适用于移动端的地址选择器
2016/02/18 Javascript
简单理解JavaScript中的封装与继承特性
2016/03/19 Javascript
JS+HTML5实现上传图片预览效果完整实例【测试可用】
2017/04/20 Javascript
vuejs手把手教你写一个完整的购物车实例代码
2017/07/06 Javascript
VUE和Antv G6实现在线拓扑图编辑操作
2020/10/28 Javascript
Python在线运行代码助手
2016/07/15 Python
Python OOP类中的几种函数或方法总结
2019/02/22 Python
python批量识别图片指定区域文字内容
2019/04/30 Python
Python趣味入门教程之循环语句while
2020/08/26 Python
Python制作一个仿QQ办公版的图形登录界面
2020/09/22 Python
Python中logging日志的四个等级和使用
2020/11/17 Python
意大利专业化妆品品牌:KIKO MILANO
2017/02/01 全球购物
英国第一职业高尔夫商店:Clickgolf.co.uk
2020/11/18 全球购物
中间件分为哪几类
2012/03/14 面试题
学校卫生检查制度
2014/02/03 职场文书
2014年会计人员工作总结
2014/12/10 职场文书
出纳工作检讨书范文
2014/12/27 职场文书
开票员岗位职责
2015/02/12 职场文书
新娘父亲婚礼致辞
2015/07/27 职场文书
python playwright 自动等待和断言详解
2021/11/27 Python
详解nginx安装过程并代理下载服务器文件
2022/02/12 Servers
MySQL提升大量数据查询效率的优化神器
2022/07/07 MySQL