YAML 语法浅析

标签: YAML
7人阅读 评论(0) 收藏 举报
分类:

YAML简介:

YAML是YAML不是一种标记语的外语缩写;但为了强调这种语言以数据做为中心,而不是以置标语言为重点,而用返璞词重新命名。它是一种直观的能够被电脑识别的数据序列化格式,是一个可读性高并且容易被人类阅读,容易和脚本语言交互,用来表达资料序列的编程语言。

在线编辑器,可以将YAML 转换为JSON 或Python 的output。

语法特性

1,使用缩进来表示层级关系, 且禁止使用tab 来缩进, 只可以使用空格。

2,大小写敏感。

3,缩进长度可以为任意长度,但是同一层级的元素必须对齐。

4,#来表示注释行的开始。

5,字符串不需要引号标注

6, 冒号和后面的value 必须有至少一个空格

基本语法

1,LIST, 数组。YAML使用 连字符(-) , 连字符后面必须加空格表示:

#YAML
- cat
- dog
- elephant
#或者写在一行
[cat,dog,elephant]
#JSON
[
  "cat", 
  "dog", 
  "elephant"
]

#Python
['cat', 'dog', 'elephant']

2, MAP, YAML使用冒号(注意空格的使用), 来表示key-value。

#YAML
name: tiefanhe
age: 22
#JSON
{
  "age": 22, 
  "name": "tiefanhe"
}
#Python
{'age': 22, 'name': 'tiefanhe'}

3, scalar, 最小的数据单位,不可分割

数据结构的组合嵌套

1, LIST 嵌套LIST

#YAML 表示法1
-
 - apple
 - banana
 - orange
-
 - cat
 - dog
 - elephant

#YAML 表示法2
- - apple
  - banana
  - orange
- - cat
  - dog
  - elephant

#JSON
[
  [
    "apple", 
    "banana", 
    "orange"
  ], 
  [
    "cat", 
    "dog", 
    "elephant"
  ]
]
#Python
[['apple', 'banana', 'orange'], ['cat', 'dog', 'elephant']]

2,LIST 嵌套MAP

#YAML 表示1
-
 name: tie fanhe
 age: 22
-
 name: san zhang
 age: 23

#YAML 表示2
- name: tie fanhe
  age: 22
- name: san zhang
  age: 23
#JSON
[
  {
    "age": 22, 
    "name": "tie fanhe"
  }, 
  {
    "age": 23, 
    "name": "san zhang"
  }
]

#Python
[{'age': 22, 'name': 'tie fanhe'}, {'age': 23, 'name': 'san zhang'}]

3, MAP 嵌套LIST

#YAML 表示
Animal:
 - cat
 - dog

Fruit:
 - apple
 - banana
#JSON
{
  "Fruit": [
    "apple", 
    "banana"
  ], 
  "Animal": [
    "cat", 
    "dog"
  ]
}

#Python
{'Animal': ['cat', 'dog'], 'Fruit': ['apple', 'banana']}

4, MAP 嵌套MAP

#YAML 表示
Student1:
 name: tie fanhe
 age: 22

Student2:
 name: san zhang
 age: 23
#JSON
{
  "Student2": {
    "age": 23, 
    "name": "san zhang"
  }, 
  "Student1": {
    "age": 22, 
    "name": "tie fanhe"
  }
}
#Python
{'Student1': {'age': 22, 'name': 'tie fanhe'},
 'Student2': {'age': 23, 'name': 'san zhang'}}


查看评论

YAML最最基础语法

正如YAML所表示的YAML Ain’t Markup Language,YAML 是一种简洁的非标记语言。YAML以数据为中心,使用空白,缩进,分行组织数据,从而使得表示更加简洁易读。一边学习规则一...
  • vincent_hbl
  • vincent_hbl
  • 2017-07-19 16:37:53
  • 6672

YAML+jinja语法

编写的.sls文件主要使用YAML语法结构,主要包含三点: a)  空格 使用2个空格表示数据层级。 b)  冒号 使用冒号表示K-V数据结构(Python里叫dict)。 例如Ke...
  • U201017971
  • U201017971
  • 2017-07-26 12:08:43
  • 562

YAML语法-用法说明书

  • 2013年04月22日 19:29
  • 2KB
  • 下载

YAML语法

YAML(发音 /ˈjæməl/ )是一种专门用户描述数据的简单语言,支持复杂的可嵌套的数据结构。其基本的语法规则是:大小写敏感使用缩进表示层级关系缩进时不允许使用Tab键,只允许使用空格。缩进的空格...
  • liebert
  • liebert
  • 2018-03-05 21:59:48
  • 190

YAML 语言格式

原文地址:http://www.ruanyifeng.com/blog/2016/07/yaml.html?f=tt 编程免不了要写配置文件,怎么写配置也是一门学问。 YAML 是专门...
  • michaelhan3
  • michaelhan3
  • 2017-04-08 09:51:59
  • 12617

《Ansible自动化运维》—2.(yaml的语法问题)

第一次写ansible playbook就遇到一大堆yaml语法上的问题。 1.yaml不支持tab缩进的格式,只支持空格的缩进方式,并且对缩进要求比较严格,另外“-”,“:”后面也必须加空格。 ...
  • wating_jx
  • wating_jx
  • 2017-05-02 17:25:11
  • 588

YAML 文件语法

转自:https://www.cnblogs.com/freefei/p/5311294.htmlYAML 模板文件语法 默认的模板文件是 docker-compose.yml,其中定义的每个服务...
  • wuqiang3424
  • wuqiang3424
  • 2017-11-17 10:35:09
  • 628

Ansible_yaml剧本

Ansible的yaml剧本是一种简单方便,编写使用ansible_yaml脚本能轻松帮助人们快速完成大批量重复的工作。并且网上有大量的模板哦......
  • q919683527
  • q919683527
  • 2017-11-30 09:50:24
  • 356

YAML文件语法简介

YAML是一种利于人们读写的数据格式. 现在很多系统例如Spring,Ansible,RoR等都支持YAML配置文件,YAML由于其良好的可读性,越来月流行。此外在大多数变成语言中有使用 YAML 的...
  • offbye
  • offbye
  • 2016-05-12 21:03:58
  • 2458

学习YAML

在我的学习中。在自动化运维ansible和使用kubernetes的定义的时候用到YAML格式的文件来存储配置信息。因此掌握阅读和书写YAML格式文档的基础知识是很有必要的。我在上网查了些资料,做了总...
  • effort0806222
  • effort0806222
  • 2016-04-14 11:39:25
  • 323
    个人资料
    等级:
    访问量: 6万+
    积分: 1051
    排名: 4万+
    最新评论