python

关注公众号 jb51net

关闭
首页 > 脚本专栏 > python > python yaml 输入输出格式

python处理 yaml 时保持输入输出格式一致的问题记录

作者:10 柒

这篇文章主要介绍了python处理 yaml 时保持输入输出格式一致的问题记录,要想保持顺序不变在dump时添加sort_keys=False,使yaml格式保持原来的排序,本文给大家介绍的非常详细,需要的朋友可以参考下

问题

使用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 输入输出格式内容请搜索脚本之家以前的文章或继续浏览下面的相关文章希望大家以后多多支持脚本之家!

您可能感兴趣的文章:
阅读全文