范文健康探索娱乐情感热点
投稿投诉
热点动态
科技财经
情感日志
励志美文
娱乐时尚
游戏搞笑
探索旅游
历史星座
健康养生
美丽育儿
范文作文
教案论文
国学影视

Python自动化处理Yaml文件

  1. Yaml 是什么Yaml是一种简洁的非标记语言。  Yaml是一个可读性高,用来表达数据序列化的格式。  Yaml以数据为中心,使用空白,缩进,分行组织数据,从而使得表示更加简洁。  Yaml特别适合用来表达或编辑数据结构、各种配置文件、文件大纲等。
  2. Yaml 文件规则区分大小写;  注释标识为#;  使用缩进表示层级关系;  使用空格键缩进,而非Tab键;  缩进的空格数目不固定,只需要相同层级的元素左侧对齐;  文件中的字符串不需要使用引号标注,但若字符串包含有特殊字符则需用引号标注;
  3. Yaml 文件数据结构
  Yaml文件内容—示例1:  China:   family:     name: Smile_Family     parents:       - John       - Jane     children:       - Lily       - Frank   address:     province: BeiJing     region: chaoyang     city: BeiJing
  Yaml文件内容—示例2:  China:   family: { name: Smile_Family, parents: [John, Jane], children: [Lily, Frank] }   address: { province: BeiJing, region: chaoyang, city: BeiJing }
  从上述示例文件内容可以看到 Yaml 数据结构:
  1). 对象:键值对的集合(简称 "映射或字典")
  例如:family 和 address 这两个对象后面分别有对应的键值对集合。
  2). 键值对用冒号 ":" 结构表示,冒号与值之间需用空格分隔
  例如:
  family 对象中的 key 为 name 与其对应的 value 值 Smile_Family 之间是使用空格分隔的。
  address 对象中的 key 为 province 与其对应的 value 值 BeiJing 之间是使用空格分隔的。
  3). 数组:一组按序排列的值(简称 "序列或列表"),数组前加有 "-" 符号,符号与值之间需用空格分隔
  例如:
  parents 中的 John 和 Jane
  children 中的 Lily 和 Frank
  4). 纯量(scalars):单个的、不可再分的值。例如:字符串、bool值、整数、浮点数、时间、日期、null等
  None值可用null也可用 ~ 表示;
  4. 安装与导入python -m pip install pyyaml import yaml
  5. Yaml数据示例5.1 Yaml 转 Python 列表
  yaml文件内容如下:  -tony -22 -tester
  Python解析输出为:  ["tony",22,"tester"]5.2 Yaml 转 Python 字典
  这个例子输出一个字典,其中value包括所有基本类型
  Yaml文件内容如下:  str: "Hello World!" int: 110 float: 3.141 boolean: true  # or false None: null  # 也可以用 ~ 号来表示 null time: 2016-09-22t11:43:30.20+08:00  # ISO8601,写法百度 date: 2016-09-22  # 同样ISO8601
  Python解析输出为:  {"str": "Hello World!", "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文件内容如下:  - name: jack   age: 0   job: test - name: tony   age: 30
  Python输出为:  [{"name": "jack", "age": 0, "job": "test"}, {"name": "tony", "age": 30}]5.4 特殊字符的说明
  如果字符串没有空格或特殊字符,不需要加引号,但如果其中有空格或特殊字符,则需要加引号。
  这里要注意单引号和双引号的区别:
  单引号中的特殊字符转到 Python 会被转义,也就是到最后是原样输出;
  双引号不会被 Python 转义,到最后是输出了特殊字符;
  Yaml文件内容如下:  str0: hi str1: "Hello World" str2: "Hello World"
  Python输出:  {"str": "hi", "str1": "Hello World", "str2": "Hello World"}
  6. Python代码实现import yaml  class TestYaml:     def __init__(self,yamlFile):         """初始化yaml文件"""         self.yamlFile=yamlFile      def readYaml(self):         """读取yaml文件"""         with open(self.yamlFile,"r",encoding="utf-8") as f:             values=yaml.load(f,Loader=yaml.FullLoader)             print(values)      def writeYaml(self,dict):         """写yaml文件"""         with open(self.yamlFile,"a",encoding="utf-8") as f:             try:                 yaml.dump(data=dict,stream=f,encoding="utf-8",allow_unicode=True)             except Exception as e:                 print(e)      def cleanYaml(self):         """清空yaml文件"""         with open(self.yamlFile,"w") as f:             f.truncate()   if __name__ == "__main__":     ty=TestYaml("testyaml.yaml")     ty.readYaml()      dict1={"jobs":{"computers":"tester"},"age":22}     ty.writeYaml(dict1)     ty.readYaml()      ty.cleanYaml()     ty.readYaml()

销量势头迅猛!比亚迪又有新成绩用产品技术说话才是王道在过去的2021年,新能源成为了汽车行业的热词。而作为新能源汽车领导者的比亚迪,在2021年推出的宋PLUSDMi秦PLUSDMi海豚等车型受到了市场强烈的反响,成为了新能源乘用车华为欧拉累计装机量已超130万套,市场份额增长迅速在欧拉开发者大会主论坛上,欧拉首个数字基础设施全场景长周期版本openEuler22。03LTS版本正式发布,华为鲲鹏计算领域副总裁openEuler社区理事长江大勇在会上公布op俞经民新能源汽车拐点将至品牌与产品至上来源中国经济网张懿俞经民坦言,在新能源汽车方面,大众缺少先发效应。但他认为,电动车发展是一个持续耕耘的过程,也越来越受到消费者的认可,大众可靠的产品与30余年积累的消费者信任,是品元宇宙的爆发场景都会出现在哪里?原宇宙是去年开始被爆出来的一个话题,到现在经过了几个月的市况低迷后,这个话题似乎渐渐冷却下来了,但是我仍然对这个领域充满了期待。因为从去年NFT兴起之后我就一直坚定地认为这是区块链MySQL面试游戏MySQL连连问,你能闯到第几关?基础篇SQL篇运维篇体系架构篇备份恢复篇高可用篇性能优化篇故障处理篇基础篇第01关MySQL数据库有哪些优点?1MySQL是开源的,允许任何人去下载使用,允许任何人去研究他的源代码湖南建工集团安装公司2项科技成果获行业最高技术荣誉国资潇湘融媒4月15日长沙讯(记者郑寓亮通讯员熊恕)4月12日,湖南建工集团旗下湖南省工业设备安装有限公司两项科技成果基于BIM及IOT技术楼宇智能运维系统的研究与应用大型垃圾发电阿里技术副总裁贾扬清澄清没从阿里离职是去看病4月14日消息,网传阿里技术副总裁贾扬清在社交媒体上发文称自己已从上海乘坐航班抵达美国。相关网传截图曝光后,引来不少网友讨论。当日,贾扬清发文澄清,没有从阿里离职,在中美往返也是正河北交投和联通签订协议数字交通技术应用联合实验室成立河北新闻网讯(河北日报记者马朝丽通讯员王哲)4月13日,河北交投和河北联通签订战略合作协议,并举行数字交通技术应用联合实验室挂牌仪式。按照协议,双方将在企业数字化智慧高速建设智慧港技术干货如何在MongoDB中轻松使用GridFS?GridFS是用于存储和检索超过16MB大小限制的BSON文档文件的规范。注意GridFS不支持多文档事务相较于将一个文件存储在单条文档中,GridFS将文件分为多个部分或块1,并微信农场上线是抄袭还是创新?微信农场上线啦无线耳机剩下一边的人,抱怨耳机为什么不买有线的,一天手机两充的人,抱怨为啥不能直接换电池所以时尚是一场轮回轮回的到底是时尚还是情怀?4月12日微信靠着微信农场的词条登Java零基础入门必学知识点Java常用类视频教程Java基础教程在前面的课程中,我们知道了在学习Java中有各种各样的类来供我们学习,八种使用较为广泛的类知识点有1。包装类2。String类3。StringBuffer和StringBuilde
抢矿大战愈演愈烈,锂钴稀土加速上行,有色金属前景可期随着国内外电动车市场共振向上,新能源汽车相关原材料的需求也明显大涨。5月份,国内外新能源汽车销售数据持续高增,国内5月份新能源汽车的产销分别是21。7万辆和21。7万辆,同比增长了爱玛818京东汽车节荣誉战报出炉!引领行业消费品质升级8月8日20日,京东汽车联合10大主流品牌,发起首届818京东汽车生活节,旨在打造出一场覆盖从两轮到四轮全链条产品参与的行业盛宴,深度结合京东站内外资源,共同造势818,全面引爆声问答我搬家了,新能源汽车充电桩该如何迁移?问我2020年12月底本市购入新能源汽车。于今年1月完成登记并取得新能源牌照,并于租房处完成电表电桩安装。近期本人搬家并于新家小区购入车位。咨询我要如何才能办理电表和充电桩移机到新微信又有新版本全面更新,除了可设置独立密码外,还有7个新发现微信最近的更新很频繁,加入了很多非常好用的功能。最近,微信又有全新版本迎来了全面更新,除了可以设置独立密码之外,还有7个新发现,每一个都是你期待已久的,不知道你有没有发现。设置独立工作利器!新款设计师笔记本ThinkPadP15v登场,仅售8999元提起ThinkPadP系列,可能很多人比较陌生,其目前定位为设计师笔记本,具有专业图形卡以及更高色域的屏幕。之前的P系列价格都在万元以上,而最新的ThinkPadP15v2021款戴尔灵越16Plus,为设计工作注入新生2021年PC行业涌现了许多新品,戴尔灵越系列也不负众望,新出的戴尔灵越16Plus一经推出,瞬间用颜值吸引众人目光,金属的机身简单干净,没有多余的构造,整体的线条感与质感较以往也程序员2021。8。230十荟团被曝大批裁员,员工未拿到法定赔偿此前宣布与阿里MMC整合据凤凰网报道,当下最大的社区团购平台之一的十荟团似乎也已经处于危难边缘。现有十荟团员工在社交平台报料称,自己被公司突安全是不可动摇的核心,标准远超国标,揭秘极氪001三电技术今年4月底,吉利旗下高端纯电品牌极氪汽车的首款车型ZEEKR001正式上市。不同于市场里很多纯电动车型叫好不叫座的状况,ZEEKR001一上市就引发了连极氪官方都没想到的哄抢局面,ROG游戏手机5s系列明天开售搭载888售4699元起手机中国新闻在全民都喜欢打手机游戏的时代,专业的游戏手机也应运而生,并且受到了不少游戏玩家的喜欢。8月24日上午10点,腾讯ROG游戏手机5s系列将正式开售,售价4699元起。腾讯微信8。0。11再度更新!这次朋友圈能换视频封面了微信又再度迎来了8。0。11的更新,目前iOS微信版本号已经相继更新了,这次的更新又上线了4个新功能,有没有很期待呢?1。支持切换更多账号在旧版本安卓微信里,我们只能在两个账号之间索尼电视使用小技巧(一)许多购买了索尼电视的朋友,在使用索尼电视的时候可能只是感觉它的画质很好,至于功能使用的却不是那么熟练,甚至不太会使用。今天我就跟大家分享一下索尼电视的一些使用方法和技巧。2015年