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深入06——python的内存管理详解
Dec 07 Python
python实现的正则表达式功能入门教程【经典】
Jun 05 Python
Django中cookie的基本使用方法示例
Feb 03 Python
详解python的ORM中Pony用法
Feb 09 Python
python装饰器代替set get方法实例
Dec 19 Python
Pytorch数据拼接与拆分操作实现图解
Apr 30 Python
Python几种常见算法汇总
Jun 02 Python
Python局部变量与全局变量区别原理解析
Jul 14 Python
python 浮点数四舍五入需要注意的地方
Aug 18 Python
python实现暗通道去雾算法的示例
Sep 27 Python
详解Pytorch显存动态分配规律探索
Nov 17 Python
python 根据列表批量下载网易云音乐的免费音乐
Dec 03 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实现jQuery扩展函数
2009/10/30 PHP
PHP字符串中特殊符号的过滤方法介绍
2014/02/18 PHP
yum命令安装php7和相关扩展
2016/07/04 PHP
微信公众号模板消息群发php代码示例
2016/12/29 PHP
PHP Laravel 上传图片、文件等类封装
2017/08/16 PHP
javaScript 判断字符串是否为数字的简单方法
2009/07/25 Javascript
jQuery 获取URL参数的插件
2010/03/04 Javascript
extjs 04_grid 单击事件新发现
2012/11/27 Javascript
实例讲解JavaScript中的this指向错误解决方法
2016/06/13 Javascript
vue获取当前点击的元素并传值的实例
2018/03/09 Javascript
Vue2 添加数据可视化支持的方法步骤
2019/01/02 Javascript
echarts实现词云自定义形状的示例代码
2019/02/20 Javascript
监听element-ui table滚动事件的方法
2019/03/26 Javascript
详解微信小程序-获取用户session_key,openid,unionid - 后端为nodejs
2019/04/29 NodeJs
基于leaflet.js实现修改地图主题样式的流程分析
2020/05/15 Javascript
8个非常实用的Vue自定义指令
2020/12/15 Vue.js
python回调函数的使用方法
2014/01/23 Python
玩转python爬虫之正则表达式
2016/02/17 Python
Python实现的归并排序算法示例
2017/11/21 Python
Python批量合并有合并单元格的Excel文件详解
2018/04/05 Python
Python实现的KMeans聚类算法实例分析
2018/12/29 Python
使用Python实现 学生学籍管理系统
2019/11/26 Python
python cv2截取不规则区域图片实例
2019/12/21 Python
Django利用elasticsearch(搜索引擎)实现搜索功能
2020/11/26 Python
Html5 webview元素定位工具的实现
2020/08/07 HTML / CSS
美国顶级户外凉鞋品牌:Chacos
2017/03/27 全球购物
印尼综合在线预订网站:Tiket.com(机票、酒店、火车、租车和娱乐)
2018/10/11 全球购物
园林毕业生自我鉴定范文
2013/12/29 职场文书
网络营销策划方案
2014/06/04 职场文书
低碳环保标语
2014/06/12 职场文书
我的职业生涯规划:打造自己的运动帝国
2014/09/18 职场文书
2014超市收银员工作总结
2014/11/13 职场文书
领导欢迎词致辞
2015/01/23 职场文书
驻村工作简报
2015/07/20 职场文书
2016年先进班集体事迹材料
2016/02/26 职场文书
如何用python清洗文件中的数据
2021/06/18 Python