python解析yaml檔案

2021-08-19 16:07:57 字數 1467 閱讀 9044

yaml是乙個可讀性高,用來表達資料序列的格式。yaml引用了其他多種語言,包括:c語言、python、perl,並從xml、電子郵件的資料格式中獲得靈感。目前已經有數種程式語言或指令碼語言支援(或者說解析)這種語言。

yaml的語法和其他高階語言類似,並且可以簡單表達清單、雜湊表,標量等資料形態。它使用空白符號縮排和大量依賴外觀的特色,特別適合用來表達或編輯資料結構、各種配置檔案、傾印除錯內容、檔案大綱。儘管它比較適合用來表達層次結構式(hierarchical model)的資料結構,不過也有精緻的語法可以表示關係性(relational model)的資料。由於yaml使用空白字元和分行來分隔資料,使得它特別適合用grep/python/perl/ruby操作。其讓人最容易上手的特色是巧妙避開各種封閉符號,如:引號、各種括號等,這些符號在巢狀結構時會變得複雜而難以辨認。

關於yaml的具體語法,可以參考這篇部落格這裡不再贅述

下面來看兩個例子看python如何load和dump yaml檔案。

1. 解析yaml檔案

假設我們有如下yaml檔案

# test.yaml

age: 37

spouse:

name: jane smith

age: 25

children:

-name:

jimmy

smith

age: 15

-name1:

jenny

smith

age1: 12

可以使用yaml.load將檔案解析成乙個字典

import yaml

with open('test.yaml','r') as f:

data

= yaml.load(f)

print(type(data))

print(data)'''

輸出結果

dict'>

, 'children': [, ]}

'''

2. 將字典寫入yaml檔案中
import yaml

data = ,

'children':[, ]}

with open('test2.yaml','w') as f:

f.write(yaml.dump(data))

print yaml.dump(data)

'''輸出結果:

age: 23

children:

- -

name: johnson

spouse:

'''

得到的yaml檔案如下所示:

# test2

.yaml

age: 23

children:--

name: johnson

spouse:

yaml陣列解析 解析動態Yaml檔案

我有乙個yaml檔案,當前寫為 keys key secret dog values username shiba password inu key secret cat values dbhost localhost words meow 但是,此yaml檔案經常更改,因此每次可以使用不同的值新增...

go解析yaml檔案示例

yaml檔案已經成為配置的一種主要格式,因此各種語言都提供了相應的解析類庫,本文就以go語言中常用的yaml解析庫 gopkg.in yaml為例,簡單展示一下如何解析yaml檔案 具體 在這裡 1,直接將yaml檔案內容解析為我們定義好的struct,這種簡單方便,想獲取對應值,可以直接獲取。2,...

yaml檔案解析 c 篇

本文使用 c 庫 yaml cpp 對 yaml 檔案進行解析。cd build cmake make得到標頭檔案和.a檔案。將標頭檔案和.a檔案拷貝至工程目錄,在編譯時進行鏈結即可。注 cmake須3.0以上。yaml測試樣例 null 或 null 為關鍵字,不能寫 名稱 字串 name con...