一、介紹
- YAML是一種簡潔的非標記語言
- YAML以數據為中心,使用空白、縮進、分行組織數據,從而使表達更加簡潔易懂
二、基本規則
- 大小寫敏感
- 使用縮進表示層級關系
- 禁止使用Tab縮進,只能使用空格鍵
- 縮進長度沒有限制,只要元素對齊就表示這些元素屬於一個層級
- 使用“#”表示注釋
- 字符串可以不用引號標注
三、yaml庫安裝
支持兩種庫:PyYAML 和 ruamel.yaml
這里選擇PyYAML庫,使用pip安裝:
pip install PyYaml
四、yaml常用數據結構
1.字典
使用冒號(:)表示鍵值對,同一縮進的所有鍵值對屬於一個map
方式一:(注意冒號后必須有一個空格)
key: value1
key2: value2
方式二:使用流式(flow)語法
{key: value, key2: value2}
方式三:使用縮進表示層級關系
key:
key: value
key2: value
對應結果:{'key': {'key': 'value', 'key2': 'value'}}
2.列表
使用連字符(-)表示,連字符后必須使用一個空格
方式一:
- hello
- world
方式二:使用流式(flow)語法
[hello, world]
方式三:使用縮進表示層級關系
- python - hello - world
對應結果:['python', ['hello', 'world']]
3.純量scalar
yaml中提供了多種純量,包括整數、浮點數、字符串、null、日期、布爾值、時間
boolean: - TRUE # true, True都可以 - FALSE # false, False都可以 float: - 3.14 - 6.8523015e+5 # 可以使用科學計算法 int: - 123 - 0b1010_0111_0100_1010_1110 # 二進制表示 null: nodeName: 'node' parent: ~ # 使用~表示null string: - 哦豁 - 'hello world' # 可以使用雙引號或者單引號包裹特殊字符 - newline newline2 # 字符串可以折成多行,每一行會被轉化成空格 date: - 2019-11-14 # 日期必須使用ISO 8601格式,即YYYY-mm-dd datetime: - 2019-11-14T08:56:30+08:00 # 時間使用ISO 8601格式,時間和日期之間使用T連接,最后使用+號代表時區
五、使用方法
1.引入yaml模塊
import yaml
2.讀取yaml數據
- 打開yaml文件
- 使用yaml的load()方法,並且可以傳入Loader=yaml.FullLoader解決告警的問題
我們可以將appium的啟動會話參數使用yaml配置文件管理:
import pprint import yaml with open('desired_caps.yaml', encoding='utf-8') as fs: data = yaml.load(fs, Loader=yaml.FullLoader) pprint.pprint(data)
使用以上代碼將內容讀取出來,結果如下: