问题
使用python 自带的 pyyaml库中,读取yaml文件修改 再输出后会有
1.打印 字段 乱序问题
2.列表格式问题
要想保持顺序不变在 dump时添加 sort_keys=False,使yaml格式保持原来的排序
def readyaml(): with open("../data/testdata.yaml",encoding="utf-8") as f: doc = list(yaml.safe_load_all(f)) doc[0]["body"]["username"] = "root" with open("../data/testdata.yaml","w",encoding="utf-8") as f: yaml.safe_dump_all(doc,f,sort_keys=False)
对于 列表格式问题,
在 PyYAML 库中,yaml.dump() 方法的 default_flow_style 参数用于控制输出的流风格。这个参数有以下可选项:
None:根据需要选择块风格或流风格输出。
True:强制使用流风格输出。
False:强制使用块风格输出。
即添加 default_flow_style=None 即可,默认是False
with open(yaml_out, 'w') as file: yaml.safe_dump(yaml_data, file,default_flow_style=None,sort_keys=False, indent=2,default_style='')
到此这篇关于python处理 yaml 时保持输入输出格式一致的文章就介绍到这了,更多相关python yaml 输入输出格式内容请搜索服务器之家以前的文章或继续浏览下面的相关文章希望大家以后多多支持服务器之家!
原文链接:https://blog.csdn.net/qq_44237926/article/details/139603853