yaml数组解析_yaml格式详解
YAML標(biāo)記語(yǔ)言簡(jiǎn)介?
默認(rèn)的SLS文件的renderer是YAML renderer。YAML是一個(gè)有很多強(qiáng)大特性的標(biāo)記性語(yǔ)言。Salt使用了一個(gè)YAML的小型子集,映射非常常用的數(shù)據(jù)結(jié)構(gòu),像列表和字典。YAML renderer的工作是將YAML數(shù)據(jù)格式的結(jié)構(gòu)編譯成為Python數(shù)據(jù)結(jié)構(gòu)給Salt使用。
盡管YAML語(yǔ)法可能第一眼看上去很簡(jiǎn)潔但令人畏懼,但是只要記住三個(gè)非常簡(jiǎn)單的規(guī)則就可以使用YAML語(yǔ)法寫(xiě)SLS文件了。
1. 規(guī)則一: 縮進(jìn)
YAML使用一個(gè)固定的縮進(jìn)風(fēng)格表示數(shù)據(jù)層結(jié)構(gòu)關(guān)系。Salt需要每個(gè)縮進(jìn)級(jí)別由兩個(gè)空格組成。不要使用tabs。
2. 規(guī)則二: 冒號(hào)
Python的字典當(dāng)然理所當(dāng)然是簡(jiǎn)單的鍵值對(duì)。其他語(yǔ)言的用戶(hù)應(yīng)該知道這個(gè)數(shù)據(jù)類(lèi)型叫哈希表或者關(guān)聯(lián)數(shù)組。
字典的keys在YAML中的表現(xiàn)形式是一個(gè)以冒號(hào)結(jié)尾的字符串。Values的表現(xiàn)形式冒號(hào)下面的每一行,用一個(gè)空格隔開(kāi):
my_key:?my_value
在Python中,上面的將映射為:
{'my_key':?'my_value'}
另一種選擇,一個(gè)value可以通過(guò)縮進(jìn)與key聯(lián)接。
my_key:
my_value
注解
上面的語(yǔ)法是有效的YAML,但是在SLS文件罕見(jiàn),因?yàn)橥ǔG闆r下,一個(gè)key的value不是單一的,而是一個(gè)列表?的values。
在Python中,上面的將映射為:
{'my_key':?'my_value'}
字典可以被嵌套:
first_level_dict_key:
second_level_dict_key:?value_in_second_level_dict
在Python中:
{
'first_level_dict_key':?{
'second_level_dict_key':?'value_in_second_level_dict'
}}
3. 規(guī)則三: 短橫杠
想要表示列表項(xiàng),使用一個(gè)短橫杠加一個(gè)空格。多個(gè)項(xiàng)使用同樣的縮進(jìn)級(jí)別作為同一列表的一部分。
-?list_value_one-?list_value_two-?list_value_three
列表可以可以作為一個(gè)鍵值對(duì)的value。這個(gè)在Salt很常見(jiàn):
my_dictionary:
-list_value_one
-list_value_two
-list_value_three
在Python中,上面的將映射為:
{'my_dictionary':?['list_value_one',?'list_value_two',?'list_value_three']}
4. 學(xué)習(xí)更多
一個(gè)簡(jiǎn)單的學(xué)習(xí)更多關(guān)于YAML如何渲染為Python數(shù)據(jù)結(jié)構(gòu)的方式是使用一個(gè)在線(xiàn)的YAML解析器去看看Python的輸出。
總結(jié)
以上是生活随笔為你收集整理的yaml数组解析_yaml格式详解的全部?jī)?nèi)容,希望文章能夠幫你解決所遇到的問(wèn)題。
- 上一篇: oppoa9处理器怎么样_oppoA9究
- 下一篇: react 判断地址是否有效_继续,re