先看yaml文件寫入,代碼如下:
import yaml import os curpath = os.path.dirname(os.path.realpath(__file__)) # 獲取文件當前路徑 yamlpath = os.path.join(curpath, "data.yaml") # 獲取yaml文件地址
f = open(yamlpath,'r',encoding='utf-8')
d = yaml.load(f,Loader=yaml.FullLoader)
print(d) # 讀取yaml文件
data = {'name': '測試'} # 需要傳入的數據 with open(yamlpath, 'w', encoding='utf-8') as f: yaml_obj = yaml.dump(data, f)
運行后,查看yaml文件

中文字符被轉碼
with open(yamlpath, 'w', encoding='utf-8') as f: yaml_obj = yaml.dump(data, f, allow_unicode=True)
添加allow_unicode=True,再次運行

中文保存成功。
查看源碼

發現dump_all方法在處理數據,查看dump_all源碼,可以看到里面可以設置各種條件

with open(yamlpath, 'w', encoding='utf-8') as f: yaml_obj = yaml.dump(data, f,allow_unicode=True,sort_keys=False)
比如設置sort_keys=False,寫入yaml的數據則不會排序后寫入,如果要追加寫入,讀取方式改成‘a’就可以了
