簡介
YAML 是一種簡潔的非標記語言薄辅。YAML以數(shù)據(jù)為中心滔蝉,使用空白瞳步,縮進,分行組織數(shù)據(jù)腰奋,從而使得表示更加簡潔易讀单起。
語法特點
大小寫敏感
使用縮進表示層級關系
縮進時不允許使用Tab鍵,只允許使用空格劣坊。
縮進的空格數(shù)目不重要嘀倒,只要相同層級的元素左側對齊即可
支持數(shù)據(jù)類型
純量(scalars):單個的、不可再分的值
數(shù)據(jù)最小的單位局冰,不可以再分割测蘑。類似于Python中單個變量
數(shù)組:一組按次序排列的值,又稱為序列(sequence) / 列表(list)
與Python的list數(shù)組結構類似康二,數(shù)組元素使用“-”開頭碳胳,也可以根據(jù)縮進進行數(shù)組嵌套。
-Jack
-Harry
-Sunny
[Jack,Harry,Sunny]? ? ? ?# 也可以寫成一行
對應到python的list寫法如下:
['Jack','Harry','Sunny']
對象:鍵值對的集合沫勿,又稱為映射(mapping)/ 哈希(hashes) / 字典(dictionary)
platformName: Android
platformVersion: 6.0.1
{platformName: Android,platformVersion: 6.0.1}? ? ? ? #?Yaml?也允許另一種寫法固逗,將所有鍵值對寫成一個行內對象。
注意:冒號后面一定要有空格藕帜!對應到python字典的寫法如下:
{'platformName': 'Android', 'platformVersion': '6.0.1'}
yaml數(shù)據(jù)操作
數(shù)據(jù)讀取
load方法
load(stream, Loader=Loader) 解析文件流中的第一個YAML文檔并生成相應的Python對象烫罩。
數(shù)據(jù)修改
data['name']='51zxw'
print?(data['name'])
注意:此處只是變量類型的數(shù)據(jù)變更,不會真正修改到y(tǒng)aml配置表中的數(shù)據(jù)洽故。
數(shù)據(jù)轉化
方法:dump()可以將Python對象序列化成YAML流贝攒。如果stream為None,則返回生成的字符串时甚。