YAML描述與Python的對應關係

2021-09-07 04:03:43 字數 1799 閱讀 1665

yaml是"yaml ain't a markup language"的首字母縮寫,其語法簡單,結構通過空格來展示,(列表)專案使用"-"來代表,(字典)鍵值對使用":"分割。

yaml使用乙個固定的縮排風格表示資料層級結構關係。需要每個縮排級別由空格組成。注意:不要使用tabs.

最常見的是對映到python中的列表(list)、字典(dictionary)兩種物件型別。

一、ansible相關

1、塊序列描述

塊序列就是將描述的元素序列到python的列表(list)中。以下**演示了yaml與python的對應關係:

import yaml

obj=yaml.load(

- hesperiidae

- papilionidae

- apatelodidae

- epiplemidae

print obj

本例中引用"-"來分隔表中的每個元素,執行結果如下:

['hesperiidae','papilionidae','apatelodidae','epiplemidae']

yaml也存在類似於python塊的概念,例如:-

- hesperiidae

- papilionidae

- apatelodidae

- epiplemidae-

- china

- usa

- japan

對應的python結果為:

[['hesperiidae','papilionidae','apatelodidae','epiplemidae'],[''china,'usa','japan']]

2、塊對映描述

塊對映就是將描述的元素序列到python的字典(dictionary)中,格式為"鍵(key):值(value)",以下為yaml例子:

hero:

hp:34

sp:8

level:4

orc:

hp:12

sp:0

level:2

對應的python結果為:

,'orc':}

當然,yaml塊序列與塊對映是可以自由組合在一起的,它們之間可以相互巢狀,通過非常靈活的組合,可以幫助我們描述更加複雜的物件屬性,例如:

- hero:

hp:34

sp:8

level:4

- orc:

hp:- 12

- 30

sp:0

level:2

對應的python結果為:

[},}]

二、salt相關

1、冒號  需要注意的是冒號後面都有乙個空格

字典的key在yaml中的表現形式是乙個以冒號結尾的字串:

my_key:  my_value

在python中,命令將對映為:

另一種選擇是,value可以通過縮排與key聯接。當然了也可以進行巢狀使用。

my_key:

my_value

2、短橫槓

想要表示列表項,使用乙個短橫槓加乙個空格 。

- list_value_one

- list_value_two

- list_value_three

列表可以作為乙個鍵值對的value,這在salt中很常見,比如我們要一次性安裝多個軟體包:

my_dictionary:

- list_value_one

- list_value_two

- list_value_three

在python中,上面的**將對映為:

YAML 在Python中的應用

程式設計免不了要寫配置檔案,怎麼寫配置也是一門學問。yaml 是專門用來寫配置檔案的語言,非常簡潔和強大,遠比 json 格式方便。yaml 語言 發音 j m l 的設計目標,就是方便人類讀寫。它實質上是一種通用的資料序列化格式。它的基本語法規則如下 1 大小寫敏感 2 使用縮排表示層級關係 3 ...

python中yaml檔案的讀寫

coding utf 8 author mr.deng time 2020 3 10 9 21 yaml是乙個專門用來寫配置檔案的語言。1.yaml檔案規則 區分大小寫 使用縮排表示層級關係 使用空格鍵縮排,而非tab鍵縮排 縮排的空格數目不固定,只需要相同層級的元素左側對齊 檔案中的字串不需要使用...

UML中對關係的描述

網路,加注釋修改了用詞 依賴關係是一種使用關係,特定物件的改變有可能會影響到使用該物件的物件 唉,這麼翻譯很難讓別人懂的,意思就是存在依賴,改變將影響到被依賴的物件 反之不成立。在你想顯示乙個物件使用另乙個物件時使用依賴關係。通常情況下,依賴關係體現在某個類的方法使用另乙個類作為引數 還有使用另乙個...