pyyaml模組的使用

2021-10-25 02:49:31 字數 2859 閱讀 2825

pyyaml是python的乙個專門針對yaml檔案操作的模組

方法說明

yaml.load(yaml_str, loader=yaml.safeloader)

解析yaml_str,返回乙個物件

loader有四種模式:

baseloader: 僅載入最基本的yaml;

safeloader: 安全地載入yaml語言的子集。建議載入不可信的輸入;

fullloader: 載入完整的yaml語言。避免執行任意**。當前(pyyaml 5.1)是yaml.load(input)(在發出警告之後)呼叫的預設引導程式。

unsafeloader:(也要求loader向後相容)不受信任的資料輸入可以輕易利用的原始loader**。

yaml.safe_load

快捷「糖」方式, 等效於yaml.load(yaml_str, loader=yaml.safeloader)

yaml.full_load

快捷「糖」方式, 等效於yaml.load(yaml_str, loader=yaml.fullloader)

yaml.unsafe_load

快捷「糖」方式, 等效於yaml.load(yaml_str, loader=yaml.unsafeloader)

yaml.load_all(ymlfile, loader=yaml.safeloader)

生成乙個迭代器,如果string或檔案包含幾塊yaml文件,可以使用yaml.load_all來解析全部的文件。

yaml.dump(json_data)

將乙個python物件生成為yaml文件,有第二個引數,可以直接把內容寫入到對應的檔案中

yaml.dump_all()

將多個段輸出到乙個檔案中

load方法例項:

import yaml

yaml_str =

"""name: 一條大河

age: 1956

job: singer

"""y = yaml.load(yaml_str, loader=yaml.safeloader)

print

(y)

執行結果:

load_all方法例項:yaml_test.yaml文件內容

執行結果:

dump例項:

import yaml

json_data =

y = yaml.dump(json_data, default_flow_style=

false

).encode(

'utf-8'

).decode(

'unicode_escape'

)print

(y)

執行結果:

age:

1956

job:

- singer

- dancer

name:

"\u4e00\u6761\u5927\u6cb3"

使用dump()傳入引數,可以直接把內容寫入到yaml檔案:

import yaml

filename =

"d:\\test\\yaml_test.yaml"

json_data =

with

open

(filename,

'w')

as f:

y = yaml.dump(json_data, f)

執行結果:

yaml.dump_all()例項:

import yaml

obj1 =

obj2 =

["lily"

,1956

]obj3 =

obj4 =

["zhuqiyu"

,1994

]filename =

"d:\\test\\yaml_write.yaml"

with

open

(filename,

'w', encoding=

'utf-8'

)as f:

y = yaml.dump(

[obj1, obj2, obj3, obj4]

, f)

執行結果:

模組的使用

一 什麼是模組?模組是一系列功能的集合體。模組的分類 自定義模組 第三方模組 內建模組 c語言寫的一些功能 常見的模組形式 1 乙個module.py檔案就是乙個模組,檔名是module.py,而模組名是module。2 乙個包含有 init py檔案的資料夾也是模組。3 已被編譯為共享庫或dll或...

模組的使用,模組的搜尋路徑

模組的使用 1 什麼是模組 模組是一系列功能的集合體 常見的模組形式 自定義模組 第三方模組 內建模組 1 乙個module.py檔案就是乙個模組,檔名是module.py,而模組名是module 2 乙個包含有 init py檔案的資料夾也是模組 3 已被編譯為共享庫或dll的c或c 擴充套件 4...

python bisect模組的使用

這個模組只有幾個函式,一旦決定使用二分搜尋時,立馬要想到使用這個模組 import bisect l 1,3,3,6,8,12,15 x 3 x insert point bisect.bisect left l,x 在l中查詢x,x存在時返回x左側的位置,x不存在返回應該插入的位置.這是3存在於列...