python使用yaml格式文件的方法
安裝PyYAML安裝包
YAML在python語言中有PyYAML安裝包,下載地址:https://pypi.python.org/pypi/PyYAML
聯(lián)網(wǎng)的windows可直接win+r cmd進(jìn)入終端pip install PyYAML
配置yaml文件
進(jìn)入相應(yīng)python文件的目錄,創(chuàng)建yaml文件(略)
通過編程軟件創(chuàng)建
自定義文件后綴為 .yaml
編寫yaml文件內(nèi)容
city: shanghai time: 202210 successfully: 200 exception: 500
python讀取yaml文件
#使用utf-8編碼 # -*- coding:utf-8 -*- #導(dǎo)入yaml模塊 import yaml f = open('test.yaml', 'r', encoding='utf-8') #讀yaml文件,編碼用utf-8 cfg = f.read() #讀全部文件 d = yaml.load(cfg, Loader=yaml.FullLoader) # 用load方法把讀到的yaml文件內(nèi)容轉(zhuǎn)換成字典類型 # yaml5.1版本后棄用了yaml.load(file)這個用法,因為覺得很不安全,5.1版本之后就修改了需要指定Loader,通過默認(rèn)加載器(FullLoader)禁止執(zhí)行任意函數(shù) # Loader=yaml.FullLoader 加上這行代碼,告警就沒了 print(d)
結(jié)果為字典類型
{'city': 'shanghai', 'time': 202210, 'successfully': 200, 'exception': 500}
yaml文件與python代碼書寫比較
yaml基本語法規(guī)則:
鍵值對
大小寫敏感
使用縮進(jìn)表示層級關(guān)系
縮進(jìn)時不允許使用Tab鍵,只允許使用空格。
縮進(jìn)的空格數(shù)目不重要,只要相同層級的元素左側(cè)對齊即可
#表示注釋,從這個字符一直到行尾,都會被解析器忽略,這個和python的注釋一樣
yaml支持的數(shù)據(jù)結(jié)構(gòu)有三種:
對象:鍵值對的集合,又稱為映射(mapping)/ 哈希(hashes) / 字典(dictionary)
數(shù)組:一組按次序排列的值,又稱為序列(sequence) / 列表(list)
純量(scalars):單個的、不可再分的值。字符串、布爾值、整數(shù)、浮點數(shù)、Null、時間、日期
字典嵌套字典
#字典嵌套字典 #python代碼書寫為{'dd': 'city2:shanghai2 time2:2022102'} #dd: # city2: shanghai2 # time2: 2022102
列表(或叫數(shù)組)中嵌套字典,字典中一組數(shù)據(jù)
#列表(或叫數(shù)組)中嵌套字典 #python代碼書寫為[{'city2': 'shanghai2'}, {'time2': 2022102}, {'successfully': 200}] #yaml里面寫一個列表,前面加一個'-'符號 - city2: shanghai2 - time2: 2022102 - successfully: 200
列表(或叫數(shù)組)中嵌套字典,字典中多組數(shù)據(jù)
#列表(或叫數(shù)組)中嵌套字典 #python代碼書寫為[{'city3': 'shanghai3', 'time3': 2022103}, {'city4': 'shanghai4', 'time4': 2022104}, {'city5': 'shanghai5', 'time5': 2022102}] - city3: shanghai3 time3: 2022103 - city4: shanghai4 time4: 2022104 - city5: shanghai5 time5: 2022102
字典嵌套列表
#字典嵌套列表 #python代碼書寫為{'color1': ['red', 1], 'color2': ['bule', 2], 'color3': ['black', 3]} color1: - red - 1 color2: - bule - 2 color3: - black - 3
組合使用
#組合使用 #python代碼書寫為{'languages': ['Ruby', 'Perl', 'Python', 'java c++ shell'], 'websites': {'YAML': 'yaml.org', 'Ruby': 'ruby-lang.org', 'Python': 'python.org', 'Perl': 'use.perl.org'}, 'db': {'host': 'xxx', 'port': 3306, 'user': 'shanghai', 'password': 'xxx', 'db_name': 'china', 'db_type': 'mysql'}} languages: - Ruby - Perl - Python - java c++ shell websites: YAML: yaml.org Ruby: ruby-lang.org Python: python.org Perl: use.perl.org db: host: xxx port: 3306 user: shanghai password: xxx db_name: china db_type: mysql
其他類型
#1、數(shù)值直接以字面量的形式表示 #number: 202210.010101 #{'number': 202210.010101} #2、布爾值用true和false表示 #isSet: true #{'isSet': True} #isSet1: false #{'isSet1': False} #3、null用~表示 #parent: ~ #{'parent': None} #4、時間采用 ISO8601 格式。 #time1: 2022-10-10t10:10:10.10-10:00 #{'time1': datetime.datetime(2022, 10, 10, 10, 10, 10, 100000, tzinfo=datetime.timezone(datetime.timedelta(days=-1, seconds=50400)))} ##5、日期采用復(fù)合 iso8601 格式的年、月、日表示。 #date: 2022-10-01 #{'date': datetime.date(2022, 10, 1)} #6、YAML 允許使用兩個感嘆號,強(qiáng)制轉(zhuǎn)換數(shù)據(jù)類型,轉(zhuǎn)換成字符串str。 #int_to_str: !!str 123 #{'bool_to_str': '123'} #bool_to_str: !!str true #{'bool_to_str': 'true'}
到此這篇關(guān)于python使用yaml格式文件的方法的文章就介紹到這了,更多相關(guān)python使用yaml內(nèi)容請搜索腳本之家以前的文章或繼續(xù)瀏覽下面的相關(guān)文章希望大家以后多多支持腳本之家!
相關(guān)文章
Python3使用騰訊云文字識別(騰訊OCR)提取圖片中的文字內(nèi)容實例詳解
這篇文章主要介紹了Python3使用騰訊云文字識別(騰訊OCR)提取圖片中的文字內(nèi)容方法詳解,需要的朋友可以參考下2020-02-02python爬蟲MeterSphere平臺執(zhí)行報告使用實戰(zhàn)
這篇文章主要為大家介紹了python爬蟲MeterSphere平臺執(zhí)行報告使用實戰(zhàn),有需要的朋友可以借鑒參考下,希望能夠有所幫助,祝大家多多進(jìn)步,早日升職加薪2023-12-12Python編寫Windows Service服務(wù)程序
這篇文章主要為大家詳細(xì)介紹了Python編寫Windows Service服務(wù)程序,具有一定的參考價值,感興趣的小伙伴們可以參考一下2018-01-01Python中*args與**kwargs的高級應(yīng)用指南
在Python編程中,*args和**kwargs是兩個非常強(qiáng)大的功能,它們允許開發(fā)者構(gòu)建更加靈活和可擴(kuò)展的函數(shù),下面就跟隨小編一起來看看它的具體應(yīng)用吧2024-03-03python-tornado的接口用swagger進(jìn)行包裝的實例
今天小編就為大家分享一篇python-tornado的接口用swagger進(jìn)行包裝的實例,具有很好的參考價值,希望對大家有所幫助。一起跟隨小編過來看看吧2019-08-08在PyCharm環(huán)境中使用Jupyter Notebook的兩種方法總結(jié)
今天小編就為大家分享一篇在PyCharm環(huán)境中使用Jupyter Notebook的兩種方法總結(jié),具有很好的參考價值,希望對大家有所幫助。一起跟隨小編過來看看吧2018-05-05Pycharm遠(yuǎn)程連接服務(wù)器跑代碼的實現(xiàn)
本文主要介紹了Pycharm遠(yuǎn)程連接服務(wù)器跑代碼的實現(xiàn),文中通過示例代碼介紹的非常詳細(xì),對大家的學(xué)習(xí)或者工作具有一定的參考學(xué)習(xí)價值,需要的朋友們下面隨著小編來一起學(xué)習(xí)學(xué)習(xí)吧2022-07-07python視頻轉(zhuǎn)化字節(jié)問題的完整實現(xiàn)
在Python中可以將視頻和字節(jié)進(jìn)行轉(zhuǎn)換,下面這篇文章主要給大家介紹了關(guān)于python視頻轉(zhuǎn)化字節(jié)問題的相關(guān)資料,文中通過實例代碼介紹的非常詳細(xì),需要的朋友可以參考下2022-05-05