yaml簡介
1.yaml [?jæm?l]: Yet Another Markup Language :另一種標記語言。yaml 是專門用來寫配置文件的語言,非常簡潔和強大,之前用ini也能寫配置文件,看了yaml后,發(fā)現(xiàn)這個更直觀,更方便,有點類似于json格式。在自動化測試用的相當多所以需要小伙伴們要熟練掌握
2.yaml基本語法規(guī)則:
- 大小寫敏感
- 使用縮進表示層級關(guān)系
- 縮進時不允許使用Tab鍵,只允許使用空格。
- 縮進的空格數(shù)目不重要,只要相同層級的元素左側(cè)對齊即可
- #表示注釋,從這個字符一直到行尾,都會被解析器忽略,這個和python的注釋一樣
3.yaml支持的數(shù)據(jù)結(jié)構(gòu)有三種:
- 對象:鍵值對的集合,又稱為映射(mapping)/ 哈希(hashes) / 字典(dictionary)
- 數(shù)組:一組按次序排列的值,又稱為序列(sequence) / 列表(list)
- 純量(scalars):單個的、不可再分的值。字符串、布爾值、整數(shù)、浮點數(shù)、Null、時間、日期
安裝yaml
1.使用pip安裝pyyaml模塊
1
|
pip install pyyaml |
1.python各數(shù)據(jù)類型在yaml中的書寫格式
1.yaml里面的鍵值對,也就是python里面的字典(dict)數(shù)據(jù)類型,比如python里面的字典,用yaml如何去寫
1
2
3
4
5
|
# python3.6 { "user" : '測試' , "psw" : 123456 , } |
在yaml文件里可以這樣寫:
1
2
3
|
# yaml user:測試 psw: 123456 |
字典嵌套字典
1
2
3
4
5
|
# python3.6 "nb1" : { "user" : "測試" , "psw" : " 123456 , } |
3.yaml文件里可以這樣寫:
1
2
3
4
|
# yaml nb1: user: 測試 psw: 123456 |
序列(list)
1.yaml里面寫一個數(shù)組,前面加一個‘-'符號,如下
1
2
3
|
- admin1: 123456 - admin2: 111111 - admin3: 222222 |
對應(yīng)python里面的list
1
2
3
|
[{ 'admin1' : 123456 }, { 'admin2' : 111111 }, { 'admin3' : 222222 }] |
注意:數(shù)字讀出來的是int或float類型
純量(str)
1.int和float類型的數(shù)字
1
|
n1: 12.30 |
對應(yīng)python
1
|
{ 'n1' : 12.3 } |
2.布爾值用true和false表示
1
2
|
n2: true n3: false |
對應(yīng)python
1
|
{ 'n2' : True , 'n3' : True } |
3.None用~表示
1
|
n4: ~ |
對應(yīng)python
1
|
{ 'n4' : None } |
4.時間采用 ISO8601 格式。
1
|
time1: 2001 - 12 - 14t21 : 59 : 43.10 - 05 : 00 |
對應(yīng)python
1
|
{ 'time1' : datetime.datetime( 2001 , 12 , 15 , 2 , 59 , 43 , 100000 )} |
5.日期采用復(fù)合 iso8601 格式的年、月、日表示。
1
|
date1: 2017 - 07 - 31 |
對應(yīng)python
1
|
{ 'date1' : datetime.date( 2017 , 7 , 31 )} |
6.使用兩個感嘆號,強制轉(zhuǎn)換數(shù)據(jù)類型。
1
2
|
# int轉(zhuǎn)str n6: !! str 123 |
對應(yīng)python
1
2
3
|
{ 'n6' : '123' } # bool值轉(zhuǎn)str n7: !! str true |
對應(yīng)python
1
|
{ 'n7' : 'true' } |
7.在yaml文件寫入以下內(nèi)容:
1
2
3
4
5
6
7
8
|
n1: 12.30 n2: true n3: false n4: ~ time1: 2018 - 04 - 18t21 : 59 : 43.10 + 08 : 00 date1: 2018 - 04 - 18 n6: !! str 123 n7: !! str true |
python讀取結(jié)果:
1
2
3
4
5
6
7
8
|
{ 'n1' : 12.3 , 'n2' : True , 'n3' : False , 'n4' : None , 'time1' : datetime.datetime( 2018 , 4 , 18 , 13 , 59 , 43 , 100000 ), 'date1' : datetime.date( 2018 , 4 , 18 ), 'n6' : '123' , 'n7' : 'true' } |
混合使用
1.list嵌套dict,在yaml里面寫入如下內(nèi)容:
1
2
3
4
5
6
7
8
|
- user: admin1 psw: '123456' - user: admin2 psw: '111111' - user: admin3 psw: '222222' |
用python讀取出來的結(jié)果:
1
2
3
|
[{ 'user' : 'admin1' , 'psw' : '123456' }, { 'user' : 'admin2' , 'psw' : '111111' }, { 'user' : 'admin3' , 'psw' : '222222' }] |
2.dict嵌套list,在yaml里面寫入如下內(nèi)容:
1
2
3
4
5
6
7
8
9
10
11
|
nub1: - admin1 - '123456' nb2: - admin2 - '111111' nb3: - admin3 - '222222' |
用python讀取出來的結(jié)果:
1
2
3
|
{ 'nub1' : [ 'admin1' , '123456' ], 'nb2' : [ 'admin2' , '111111' ], 'nb3' : [ 'admin3' , '222222' ]} |
3.讀取yaml文件
讀取login.yaml文件的內(nèi)容
3.寫入數(shù)據(jù)到y(tǒng)aml文件
總結(jié)
到此這篇關(guān)于Python讀取yaml文件的文章就介紹到這了,更多相關(guān)Python讀取yaml文件內(nèi)容請搜索服務(wù)器之家以前的文章或繼續(xù)瀏覽下面的相關(guān)文章希望大家以后多多支持服務(wù)器之家!
原文鏈接:https://www.cnblogs.com/xiaoxiao-wu/p/13348058.html