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存在於列...