python系列之:YAML语法总结

  • 一、YAML语法规则
  • 二、YAML支持的数据格式
  • 三、PyYAML库解析YAML格式文件

YAML是一种可读性很强的数据格式语言。

一、YAML语法规则

  • YAML文件的第一行为"—",表示这是一个YAML文件
  • YAML中的字段大小写敏感
  • YAML与Python一样,使用缩进表示层级关系
  • YAML的缩进不允许使用Tab键,只允许使用空格,且空格的数目不重要,只要相同层级的元素左侧对齐即可。
  • #表示注释,从这个字符一直到行尾都会被解析器忽略

二、YAML支持的数据格式

  • 对象:键值对的集合,又称为映射,类似于Python中的字典
  • 数组:一组按次序排列的值,又称为序列,类似于Python中的列表
  • 纯量:单个的、不可再分的值,如字符串、布尔值与数字

三、PyYAML库解析YAML格式文件

pip install PyYAML

使用YAML表示数组非常容易,只需要用-将元素按序列出即可。

---
- Apple
- Orange
- Mongo

使用PyYAML库解析YAML文件,

import yamlwith open("/Users/fei.yang4/PycharmProjects/firstProject/data.yml") as f:print(yaml.load(f,Loader=yaml.FullLoader))

输出如下所示:
[‘Apple’, ‘Orange’, ‘Mongo’]

---
name: 赵云
power: 5000

转换为python内部对象后,结果如下:

{'name': '赵云', 'power': 5000}

YAML中的对象和数组也可以任意嵌套,如下所示:

---
name: 刘备
power: 80000
foods:- apple- orange
hobby:sport: footballgame: fight

将上面的YAML文件转换为Python的内部对象,结果如下:

{'name': '刘备',
'power': 80000,
'foods': ['apple', 'orange'],
'hobby': {'sport': 'football', 'game': 'fight'}}

在YAML中定义字符串时,甚至都不需要使用单引号或双引号,直接将字符串写在文件中即可。如果字符串包含特殊字符,需要使用双引号包含起来。

python系列之:YAML语法总结相关推荐

  1. 【Python百日基础系列】Day02-Python语法基础

    Python百日基础系列 视频讲解2-1 [Python百日基础系列]02-Python语法基础-1 视频讲解2-2 [Python百日基础系列]02-Python语法基础-2 文章目录 Python ...

  2. 1900页Python系列PPT分享三:选择与循环结构语法及案例(96页)

    总体说明:本套PPT共约1900页,包含董付国老师Python系列图书<Python程序设计基础>(2017年7月第5次印刷).<Python程序设计(第2版)>(2017年9 ...

  3. ansible中yaml语法应用

    4.yaml语法应用 ansible的playbook编写是yaml语言编写,掌握yaml语法是编写playbook的必要条件,格式要求和Python相似,具体教程参考如下 yaml语言教程 附上一个 ...

  4. csdn最新最牛最细python系列【python高阶:自动化相关技能】 python全栈自动化测试系类4-4

    目录 [python之smtplib模块发送邮件] 1.tls模式加密 2.ssl加密,默认加密端口是465 MIMEApplication模块添加附件: [python编程之ini文件处理-conf ...

  5. Python自动化之YAML解析

    准备工作 pip install PyYAML import yaml yaml语法规则 想要表示列表项,使用一个短横杠加一个空格.多个项使用同样的缩进级别作为同一列表的一部分 my_dictiona ...

  6. python布尔测试对象_面试题十九期-测试开发面试题之python系列-这个中~

    坚持梦想 就算所有人都不支持你.这条路会很曲折,你也会一度认为是不是自己选错了,但只要坚持,就算最后没有成功,但努力了就不会有遗憾. 测试开发python系列面试题 01 单选题 1.下列哪个语句在P ...

  7. 【直播资料下载】Python 系列直播——深入Python与日志服务,玩转大规模数据分析处理实战第二讲...

    流畅的Python数据处理及大数据处理ETL Python 系列直播--深入Python与日志服务,玩转大规模数据分析处理实战 直播讲师:丁来强(成喆)--阿里高级技术专家,从事阿里云日志服务相关的产 ...

  8. K8S-网络模型、POD/RC/SVC YAML 语法官方文档

    2019独角兽企业重金招聘Python工程师标准>>> K8S-网络模型.POD/RC/SVC YAML 语法官方文档 博客分类: Kubernetes K8S-网络模型.POD/R ...

  9. k8s查看pod的yaml文件_【大强哥-k8s从入门到放弃04】Yaml语法解析

    依然小福利[Python-零基础入门]2020感谢走进我的生命,Python!(已更新至206集)_哔哩哔哩 (゜-゜)つロ 干杯~-bilibili​www.bilibili.com 一.K8S名称 ...

  10. 从源代码学Python系列目录

    Hello,我是 Alex 007,一个热爱计算机编程和硬件设计的小白,为啥是007呢?因为叫 Alex 的人太多了,再加上每天007的生活,Alex 007就诞生了. 从源代码学Python系列 第 ...

最新文章

  1. QML基础类型之bool
  2. 工作组模式下SQL Server 2008 R2 数据库镜像
  3. java与c/c++进行socket通信的一些问题
  4. 计算机A级作文,关于被计算机的作文(共一篇)-疾风作文网
  5. linq的简单查询 和 组合查询
  6. MFC多国语言——资源副本
  7. 矩池云上如何修改cudnn版本
  8. Docker搭建RabbitMQ
  9. [转载]Hibernate 一对一 双向关联
  10. Linux 软件包管理器 rpm
  11. 传智播客Java 方法
  12. 如何用python做无限弹窗_Python无限弹窗,开机启动,打包为exe程序
  13. 从Dying gasp功能看Linux的响应速度
  14. 1089 狼人杀-简单版(C语言实现)
  15. vue cli3 配置sass全局变量设置不生效,sass混合器文件全局引入
  16. 动态jsp页面转pdf项目示例
  17. 安装ae显示安装程序无法初始化_pr安装时出现“正在初始化安装程序”,然后就没反应了,怎么办?...
  18. 中学计算机竞赛教程,全国中小学信息技术课程教学大赛获奖案例初中信息技术八年级-设置自定义动画动作路径...
  19. Jmeter笔记(Ⅲ) Jmeter的非GUI操作
  20. 台湾工程师聊关于IC代工业

热门文章

  1. Java基础之CAS算法
  2. 第三方android 模拟器哪个好用吗,哪个安卓模拟器好用?6款最好用流畅稳定的安卓模拟器推荐...
  3. 泛型编程基础知识详解
  4. melodic版本ROS使用anaconda中的python
  5. OSI七层网络协议(应用层:http协议、传输层:TCP协议、网络层:IP协议,数据链路层:ARP协议、网络下一跳,物理层:比特流)
  6. mysql5.8安装
  7. java后端尝试使用WebOffice在线编辑
  8. vscode vim插件(updating)
  9. 花一分钟彻底搞懂Mac输入法/中英文/大小写切换
  10. digester java_Java XML解析之Digester的使用