自动生成yaml文件,python读取yaml文件某些字段

  自动生成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的观点,版权归原作者所有,仅为传播更多信息之目的,如有侵权请联系,我们将第一时间修改或删除,多谢。

留言与评论(共有 条评论)
   
验证码: