安裝 pyyaml 模組 :pip install pyyaml
編寫**
#存在 test.yml 檔案,內容如下:
name: xiaohong
age: 24
books:
- 吶喊
- 朝花夕拾
讀取yaml**如下:
import yaml
file = open('test.yaml', 'r', encoding="utf-8")
#使用檔案物件作為引數
data = yaml.load(file)
print(data)
以上**執行結果如下:
型別: 'dict'>
for full details.
data = yaml.load(file)
process finished with exit code 0
會出現警告,原因是yaml 5.1版本後棄用了yaml.load(file)這個用法,因為覺得很不安全,5.1版本之後就修改了需要指定loader,通過預設載入器(fullloader)禁止執行任意函式,該load函式也變得更加安全。建議**如下:
import yaml
file = open('test.yaml', 'r', encoding="utf-8")
#讀取檔案中的所有資料
file_data = file.read()
file.close()
#指定loader
data = yaml.load(file_data,loader=yaml.fullloader)
print(data)
#存在 test.yml 檔案,內容如下:
---name:
xiaoli
age: 22
---name:
xiaohuang
age: 21
load_all()方法使用**如下:
import yaml
file = open('test.yaml', 'r', encoding="utf-8")
#datas為load_all()方法返回的迭代器物件
datas = yaml.load_all(file,loader=yaml.fullloader)
fordata in datas:
print(data)
本例中的yaml檔案使用 --- 分為兩段,load_all()方法會建立乙個迭代器物件,分開存放兩段資料。
import yaml
data =
data_yaml = yaml.dump(data).encode('utf-8').decode('unicode_escape')
print(data_yaml)
以上示例中.encode('utf-8').decode('unicode_escape') 是先編碼為'utf-8',然後解碼(或稱為反編碼)成漢字。大家如對此不熟悉,可以逐個去掉.encode('utf-8').decode('unicode_escape') 看顯示效果。
import yaml
data =
yaml_file = open('test.yaml','w')
#yaml_file作為dump()第二個引數,是乙個可寫狀態的檔案物件
yaml.dump(data, yaml_file ,default_flow_style=false,encoding='utf-8',allow_unicode=true)
yaml_file.flush()
yaml_file.close()
testcases.yaml
name: junxi
age: 18
spouse:
name: rui
age: 18
children:
- name: chen you
age: 3
- name: ruo xi
age: 2
read.py
import yaml
f = open('testcases.yaml','r',encoding="utf-8")
file=f.read()
f.close()
data=yaml.load(file,loader=yaml.fullloader)
print(data)
# coding:utf-8
import yaml
import os
# 獲取當前指令碼所在資料夾路徑
curpath = os.path.dirname(os.path.realpath(__file__))
# 獲取yaml檔案路徑
yamlpath = os.path.join(curpath, "testcases.yaml")
# open方法開啟直接讀出來
f = open(yamlpath, 'r', encoding='utf-8')
cfg = f.read()
print(type(cfg)) # 讀出來是字串
print(cfg)
d = yaml.load(cfg,loader=yaml.fullloader) # 用load方法轉字典
print(d)
print(type(d))
-
url: /api/user/login
method: post
datail: 正常登陸
data:
mobile: 18380416336
password: 123456
- url: /api/user/login
method: post
datail: 密碼錯誤
data:
mobile: 18380416336
password: 111111
import yamlf=open('login.yaml',encoding='utf-8')
cfg=f.read()
print(type(cfg)) # 讀出來是字串
print(cfg)
python讀取 YAML檔案
yaml在我的理解看來,它是一種資料的格式,他的格式跟json很相近,但是yaml支援注釋 1.物件名 健 空格 對。寫法一 desired caps platformname android devicename xiaomi mix platformversion 5.1 unicodekeyb...
python筆記 讀取yaml檔案
使用yaml.load 總是出現告警 yamlloadwarning calling yaml.load without loader is deprecated,as the default loader is unsafe.please read for full details.原因 yaml...
python讀取配置檔案yaml
yaml 一種非標記語言,可以簡單表達清單 列表等資料形態,檔案字尾為 yml 1.大小寫敏感 2.使用縮排表示層級關係 3.縮排不允許使用tab,只允許空格,但是對空格數不要求 4.表示注釋 key value 和value之間應該有空格 字典 name test age 12 列表 1,2 3 ...