1. 程式人生 > 實用技巧 >初識yaml語言之yaml讀寫操作

初識yaml語言之yaml讀寫操作

簡介

在開發的這種語言時,YAML 的意思其實是:"Yet Another Markup Language"(仍是一種標記語言)。

最後開發者又改變了原來的想法,改為:

YAML 是 "YAML Ain't a Markup Language"(YAML 不是一種標記語言)。

上面這些不重要,我們只需要知道YAML 是專門用來寫配置檔案的語言,非常簡潔和強大,遠比 JSON 格式方便就行。

注意格式:

'#'表示註釋

大小寫敏感

使用縮排表示層級關係

縮排不允許使用tab,只允許空格。縮排的空格數不重要,只要相同層級的元素左對齊即可

支援的資料型別

物件:鍵值對的集合,又稱為對映/ 雜湊 / 字典

陣列:一組按次序排列的值,又稱為序列 / 列表

純量:單個的、不可再分的值

yaml物件

物件鍵值對使用冒號結構表示key: value,冒號後面要加一個空格,固定寫法。

也可以使用key:{key1: value1, key2: value2, ...}。 還可以使用縮排表示層級關係,注意不要使用tab,冒號後面有空格。

其他型別暫時沒有用到,我就沒有去了解

PyYaml是python的一個專門對yaml檔案操作模組,使用起來比較簡單

安裝方法

pip install PyYaml

既然是配置檔案,那肯定要讀取或者寫入了,如何操作呢,繼續看。。

新建一個.yml的檔案

然後將上面圖一的格式內容複製到yml中

對這個配置檔案進行讀取和寫入操作

程式碼如下:

import pprint
import yaml

#讀yaml
with open('conf.yml', 'r', encoding='utf-8') as fs:
    data = yaml.safe_load(fs)  #解析yaml檔案內容並生成python物件
    pprint.pprint(data)        #列印

#寫yaml
data_w={'psw': {'new': 'abcdefg', 'old': 'abcdefgwj'}}
with open('conf.yml','w') as fs:     #
寫入模式 data2=yaml.safe_dump(data_w,fs) #將python物件轉化為yaml流 #重新再讀取yaml檔案 with open('conf.yml','r') as fs: # 也是解析yaml文件,但是有一個Loader引數,預設為空。Loader=yaml.FullLoader解決告警問題 data3=yaml.load(fs,Loader=yaml.FullLoader) pprint.pprint(data3)

列印結果如下: