yaml入门

yaml简介

正如YAML所表示的YAML Ain’t Markup Language,YAML 是一种简洁的非标记语言。YAML以数据为中心,使用空白,缩进,分行组织数据,从而使得表示更加简洁易读。

由于实现简单,解析成本很低,YAML特别适合在脚本语言中使用。列一下现有的语言实现:Ruby,Java,Perl,Python,PHP,JavaScript等。

YAML 是专门用来写配置文件的语言,非常简洁和强大,远比 JSON 格式方便。

语法特点

  • 大小写敏感
  • 使用缩进表示层级关系
  • 缩进时不允许使用Tab键,只允许使用空格。
  • 缩进的空格数目不重要,只要相同层级的元素左侧对齐即可

数据类型

支持的数据类型

1.纯量(scalars):单个的、不可再分的值
2.数组:一组按次序排列的值,又称为序列(sequence) / 列表(list)
3.对象:键值对的集合,又称为映射(mapping)/ 哈希(hashes) / 字典(dictionary)

纯量

数据最小的单位,不可以再分割。类似于Python中单个变量。

数组

与Python的list数组结构类似,数组元素使用“-”开头,也可以根据缩进进行数组嵌套。

- Jack
- Harry
- Sunny

# 也可以写成一行
[Jack,Harry,Sunny]

对象

对象的一组键值对,使用冒号结构表示。类似Python中的字典数据结构。

platformName: Android
platformVersion: 6.0.1

# Yaml 也允许另一种写法,将所有键值对写成一个行内对象。
{platformName: Android,platformVersion: 6.0.1}

数据嵌套

yaml数据嵌套表示可以将上面的各类数据根据实际场景进行组合嵌套。

name: Tom Smith
age: 37
spouse:
    name: Jane Smith
    age: 25
children:
 - name: Jimmy Smith
   age: 15
 - name: Jenny Smith
   age: 12

数据操作

数据读取

方法:load(stream, Loader=Loader)
解析文件流中的第一个YAML文档并生成相应的Python对象

数据修改

同Python。
注意:此处只是变量类型的数据变更,不会真正修改到yaml配置表中的数据。

数据转化

方法:dump()
可以将Python对象序列化成YAML流。如果stream为None,则返回生成的字符串

上一篇:yaml + easydict 写 配置文件


下一篇:Nosql数据库ElasticSearch的基础用法-初步探索