YAML语法简介

作者: 极地瑞雪 | 来源:发表于2017-02-13 22:28 被阅读119次

YAML的数据结构

YAML的设计者认为在配置文件中所要表达的数据内容有三种类型

  • Scalars(标量,如字符串和数字等)
  • Sequence (序列,类似于Python中列表的概念)
  • Mapping (类似于Python中字典的概念)

Sequence of Scalars

YAML(ball players)

- Mark McGwire
- Sammy Sosa
- Ken Griffey

Python(YAML)

['Mark McGwire', 'Sammy Sosa', 'Ken Griffey']

Mapping Scalars to Scalars

YAML(player statistics)

hr:  65    # Home runs
avg: 0.278 # Batting average
rbi: 147   # Runs Batted In

Pyhton(YAML)

{'hr':65, 'avg':0.278, 'rbi':147}

Mapping Scalars to Sequences

YAML(ball clubs in each league)

american:
  - Boston Red Sox
  - Detroit Tigers
  - New York Yankees
national:
  - New York Mets
  - Chicago Cubs
  - Atlanta Braves

Python(YAML)

{'american':['Boston Red Sox', 'Detroit Tigers', 'New York Yankees'], 'national':['New York Mets', 'Chicago Cubs', 'Atlanta Braves']}

Sequence of Mappings

YAML(players’ statistics)

-
  name: Mark McGwire
  hr:   65
  avg:  0.278
-
  name: Sammy Sosa
  hr:   63
  avg:  0.288

Python(YAML)

[{'name':'Mark McGwire', 'hr':65, 'avg':0.278}, {'name':'Sammy Sosa', 'hr':63, 'avg':0.288}]

Sequence of Sequences

YAML

- [name        , hr, avg  ]
- [Mark McGwire, 65, 0.278]
- [Sammy Sosa  , 63, 0.288]

Python(YAML)

[['name', 'hr', 'avg'], ['Mark McGwire', 65, 0.278], ['Sammy Sosa', 63, 0.288]]

Mapping of Mappings

YAML

Mark McGwire: {hr: 65, avg: 0.278}
Sammy Sosa: {
    hr: 63,
    avg: 0.288
  }

Python(YAML)

{'Mark McGwire':{'hr':65, 'avg':0.278}, 'Sammy Sosa':{'hr':63, 'avg':0.288}}

YAML中的注释

YAML

#ball players
- Mark McGwire
- Sammy Sosa
- Ken Griffey

YAML中的文档

在单一一个YAML文件中

  • 使用三个下划线___来分隔文档
  • 使用三个句号...表示结束(一般在通信信道中使用)

YAML(Two Documents in a Stream)

# Ranking of 1998 home runs
---
- Mark McGwire
- Sammy Sosa
- Ken Griffey
 
# Team ranking
---
- Chicago Cubs
- St Louis Cardinals

YAML

---
time: 20:03:20
player: Sammy Sosa
action: strike (miss)
...
---
time: 20:03:47
player: Sammy Sosa
action: grand slam
...

实例

YAML

用YAML来描述一本书《Linux命令行与shell脚本编程大全》
 
# 《Linux命令行与shell脚本编程大全》描述
---  # begin of document
书名: 'Linux命令行与shell脚本编程大全'
出版社: '人民邮电出版社'
原作者: ['Richard Blum', 'Christine Bresnahan']
译者:
    - 武海峰
    - 朱巍
前二章节:
    - 第一章: 初识Linux Shell
    - 第二章: 走进Shell
 
#end of document

Python(YAML)

{'书名':'Linux命令行与shell脚本编程大全', '出版社':'人民邮电出版社', '原作者':['Richard Blum', 'Christine Bresnahan'], '译者':['武海峰', '朱巍'], '前二章节':{'第一章':'初识Linux Shell', '第二章':'走进Shell'}}

参考文档:

相关文章

  • YAML语法简介

    YAML的数据结构 YAML的设计者认为在配置文件中所要表达的数据内容有三种类型 Scalars(标量,如字符串和...

  • yaml语法简介

    本文介绍的是YAML的语法内容,在编写docker-compose配置文件的时候使用到,这里做一些整理汇总 本文中...

  • 学习笔记-Python PyYAML模块

    1.YAML简介 YAML 是专门用来写配置文件的语言,非常简洁和强大,远比 JSON 格式方便。 2.基本语法规...

  • 为vue-cli/webpack项目增加YAML文件支持

    YAML语法用来定义JSON简直简介到完美。 学习链接 https://www.ruanyifeng.com/bl...

  • Spring Boot 学习笔记(4):配置properties

    YAML语法: 命名 YAML是"YAML Ain't a Markup Language"(YAML不是一种置标...

  • playbook语法

    playbook使用yaml语法yam语法可以通过http://www.yaml.org/spec/1.2/spe...

  • VSCode插件推荐之k8s开发

    YAML插件YAML提过对 *.yaml和 *.yml 文件提供语法着色、语法校验、自动完成和格式化等等功能。 D...

  • golang基础学习-yaml文件的解析

    1.什么是yaml? 官网解释 2.yaml语法 yaml语法,请参考这位仁兄的,写的很详细。 3. golang...

  • YAML语法

    中文:[http://www.ruanyifeng.com/blog/2016/07/yaml.html?f=tt]

  • YAML语法

    1、基本语法 key: value:表示一对键值对(key冒号后面必须有空格);以空格的缩进来控制层级关系;只要是...

网友评论

    本文标题:YAML语法简介

    本文链接:https://www.haomeiwen.com/subject/diwtwttx.html