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'}}