轉自:君惜丶python
和GNU同樣,YAML是一個遞歸着說「不」的名字。不一樣的是,GNU對UNIX說不,YAML說不的對象是XML。
YAML不是XML。
爲何不是XML呢?由於:ui
上面5條也就是XML不足的地方。同時,YAML也有XML的下列優勢:
YAML能夠基於流來處理;
YAML表達能力強,擴展性好。spa
總之,YAML試圖用一種比XML更敏捷的方式,來完成XML所完成的任務。
更多的內容及規範參見http://www.yaml.org。
YAML語法規則:
http://www.ibm.com/developerworks/cn/xml/x-cn-yamlintro/
http://www.yaml.org/
語法
結構經過空格縮進來展現。列表裏的項用"-"來表明,字典裏的鍵值對用":"分隔.
這幾乎就是全部的語法了.
好比……
通常YAML文件擴展名爲.yaml。好比:yaml_example.yamlcode
將yaml寫成配置腳本test.yaml ,如下介紹如何讀寫yaml配置。xml
1 pip3 install pyyaml
1 name: junxi 2 age: 18 3 spouse: 4 name: Rui 5 age: 18 6 children: 7 - name: Chen You 8 age: 3 9 - name: Ruo Xi 10 age: 2
1 import yaml 2 3 f = open('yaml_example.yaml') 4 content = yaml.load(f) 5 print(type(content)) 6 print('before modification:', content) 7 content['age'] = 17 8 content['children'][1]['age'] = 1 9 print('after modification', content)
程序輸出的結果爲:對象
1 <type 'dict'> 2 ('before modification:', {'age': 18, 'spouse': {'age': 18, 'name': 'Rui'}, 'name': 'junxi', 'children': [{'age': 3, 'name': 'Chen You'}, {'age': 2, 'name': 'Ruo Xi'}]}) 3 ('after modification', {'age': 17, 'spouse': {'age': 18, 'name': 'Rui'}, 'name': 'junxi', 'children': [{'age': 3, 'name': 'Chen You'}, {'age': 1, 'name': 'Ruo Xi'}]})