自动生成yaml文件,python读取yaml文件某些字段
1.什么是YAML?
Yaml是一种简洁的无标记语言。Yaml是一种高度可读的格式,用于表示数据序列化。Yaml以数据为中心,使用空白、缩进和分支来组织数据,从而使表示更加简洁。Yaml特别适合于表达或编辑数据结构、各种配置文件、文件大纲等。
2.Yaml文件规则
区分大小写;注释是#;用缩进表示层次关系;使用空格键而不是Tab键进行缩进;缩进的空格数不固定,只有同一级别的元素才需要左对齐;文件中的字符串不需要加引号,但如果字符串包含特殊字符,则需要加引号;
3.Yaml文件数据结构
Yaml文件内容—示例1:
中国:
家庭:
名称:微笑_家庭
父母:
约翰
简
儿童:
莉莉
弗兰克
地址:
省份:北京
地区:朝阳
城市:北京
Yaml文件内容—示例2:
中国:
家人:{姓名:微笑_家人,父母:[约翰,简],孩子:[莉莉,弗兰克] }
地址:{省:北京,地区:朝阳,城市:北京}
您可以从上面的示例文件内容中看到Yaml数据结构:
1).对象:键值对的集合(简称“映射或字典”)
例如,family和address后面是相应的键值对。
2).键值对由冒号“:”结构表示,冒号和值应该用空格分隔。
例如:
在family对象中,键是name,其对应的值Smile_Family由空格分隔。
address对象中的关键字是province,它对应的值BeiJing用空格隔开。
3).数组:按顺序排列的一组值(简称‘序列或列表’)。数组前面有一个“-”符号,符号和值应该用空格分隔。
例如:
《父母》中的约翰和简
《儿童》中的莉莉和弗兰克
4).标量:单一的、不可分割的值。例如:字符串、布尔值、整数、浮点数、时间、日期、null等。
None的值可以用null或~表示;
4.安装和导入
python -m pip安装pyyaml
导入yaml
5.Yaml数据示例
5.1 Yaml到Python列表
Yaml文件内容如下:
托尼
-22
-测试仪
Python解析输出为:
[托尼,22岁,测试者]
5.2 Yaml到Python字典
此示例输出一个字典,其中值包括所有基本类型。
Yaml文件内容如下:
str:“你好,世界!”
整数:110
浮动:3.141
boolean: true #或false
None: null #您也可以使用~符号来表示null。
时间:2016-09-22t 11:43:30.20 08:00 # ISO8601,写于百度
日期:2016-09-22 #同ISO8601
Python解析输出为:
{str :你好,世界!, int: 110, float: 3.141, boolean: True, None: None, time: datetime.datetime(2016,9,22,3,43,30,200000), date: datetime.date(2016,9,22)}
5.3 Yaml到Python列表嵌套字典
Yaml文件内容如下:
-姓名:杰克
年龄:0岁
工作:测试
-姓名:托尼
年龄:30岁
Python输出为:
[{name: jack , age: 0, job: test},{name: tony , age: 30}]
5.4特殊字符的描述
如果字符串中没有空格或特殊字符,则不需要引号,但如果字符串中有空格或特殊字符,则需要引号。
注意这里单引号和双引号的区别:
单引号中的特殊字符到Python时会被转义,即在末尾原样输出;
双引号不会被Python转义,末尾会输出特殊字符;
Yaml文件内容如下:
嗨
str1:“你好,世界”
2: hello \ nworld Python输出:{str: hi , str 1: hello world , str 2: hello \ nworld} 6。Python代码实现导入yaml
类TestYaml:
def __init__(self,yamlFile):
初始化yaml文件
self.yamlFile=yamlFile
def readYaml(self):
读取yaml文件
用open(self.yamlFile, r ,encoding=utf-8 )作为f:
values=yaml.load(f,Loader=yaml。满载)
打印(值)
def writeYaml(self,dict):
写入yaml文件
用open(self.yamlFile, a ,encoding=utf-8 )作为f:
尝试:
yaml.dump(data=dict,stream=f,encoding=utf-8 ,allow_unicode=True)
例外情况为e:
打印(e)
def cleanYaml(self):
空yaml文件
用open(self.yamlFile, w )作为f:
f .截断()
if __name__==__main__ :
ty=TestYaml(testyaml.yaml )
ty.readYaml()
dict 1={ jobs :{ computers : tester }, age:22}
ty.writeYaml(字典1)
ty.readYaml()
ty.cleanYaml()
ty.readYaml()
欢迎关注【无限测途】微信官方账号,回复【获取资源】
Python单元测试框架API自动化,
Python单元测试框架API自动化,
Python Pytest框架API自动化,
Python熊猫Pyecharts大数据分析,
Python Selenium框架Web的UI自动化,
Python Appium框架APP的UI自动化,
Python编程学习资源干货,
Vue前端组件框架开发,
而且资源和代码都是免费送的~
文章底部有微信官方账号的二维码,可以微信直接扫描。
备注:我的个人微信官方账号已正式开通,致力于分享IT互联网技术。
包括:数据分析、大数据、机器学习、测试开发、API接口自动化、测试运维、UI自动化、性能测试、代码检测、编程技术等。
搜索微信微信官方账号:“无限考途”,或扫描下方二维码:
加关注,我们一起成长!
郑重声明:本文由网友发布,不代表盛行IT的观点,版权归原作者所有,仅为传播更多信息之目的,如有侵权请联系,我们将第一时间修改或删除,多谢。