Yaml介绍
学习目标
- 掌握数据的存储方式
- 了解什么是yaml
1. 数据存储方式
在了解数据的存储方式之前我们要先知道什么是数据, 数据就是资源,是一切资源的统称, 数据有不同表现方式和存储方式, 例如文本类型(txt文件、doc文件)、图片、音视频等都是数据,都有不同的表现形式.
数据存储方式有下面4种:
- 内存,包括RAM(运行内存)和ROM(物理硬盘)中.
- 文件, 包括文本文件(word、excel、ppt等等)、xml(标记语言)、html(超文本标记语言)、 json、yaml
- 数据库, 例如mysql、oracle、sqlserver、sqlite等等
- 网络
2. Yaml简介
Yaml 是一种所有编程语言可用的友好的数据序列化标准.
其语法和其他高阶语言类似,并且可以简单表达清单、散列表、标量等资料形式.
3. yaml语法规则及支持的数据结构
3.1 语法规则
- 大小写敏感
- 使用缩进表示层级关系
- 缩进时不允许使用tab键,只允许使用空格
- 缩进的空格数目不重要,只要相同层级的元素左侧对齐即可
3.2 支持的数据结构
- object(对象), 键值对的集合,又称为映射/hash/字典
- array(数组), 一组按照次序排列的值,又称序列(sequence)、列表
- scalars(纯量), 单个的、不可再分的值, 包括字符串、布尔值、整数、浮点数、null、日期
3.3 数据结构的使用
(1)、对象
值为字符
data.yaml animal: pets # 注意冒号后面必须要有一个空格 转换为python代码 {'animal': 'pets'}
值为字典
data.yaml animal: {"ke1":"pets","key2":"app"} # python字典 转换为python代码 {animal: {"ke1":"pets","key2":"app"}} # 嵌套字典结构
(2)、数组
方式一
data.yaml animal: - data1 - data2 转换为python代码 {'animal': ['data1', 'data2']}
方式二
data.yaml animal: ['data1', 'data2'] # python列表 转换为python代码 {'animal': ['data1', 'data2']} # 字典嵌套列表
(3)、纯量
主要包括: 字符串、布尔值、整数、浮点数、null、日期
# 字符串
data.yaml
value: "hello"
转换为python代码
{"value":"hello"}
# 布尔值
data.yaml
value1: true
value2: false
转换为python代码
{'value1': True, 'value2': False}
# 整数,浮点数
data.yaml
value1: 12
value2: 12.102
# 转换为python代码
{'value1': 12, 'value2': 12.102}
# 空(Null)
data.yaml
value1: ~ # ~ 表示为空
转换为python代码
{'value1': None}
# 日期
data.yaml
value1: 2017-10-11 15:12:12
转换为python代码
{'languages': {'value1': datetime.datetime(2017, 10, 11, 15, 12, 12)}}
(4)、锚点和引用
锚点: 标注一个内容,锚点名称自定义, 标示符号是 &
引用: 被标注的内容. 标示符号好是*, 使用方式: <<: *锚点名
data: &imp # & 是锚点标示符号
value: 456
name:
value1: 123
<<: *imp # "<<:" 合并到当前位置,"*imp" 引用锚点imp
转换为python代码
{'data': {'value': 456}, 'name': {'value': 456, 'value1': 123}}