首页 > 解决方案 > 如何在 Python 中使用根键保存 yaml 键值?

问题描述

我正在使用 Python 来操作 yaml 文件。我正在尝试使用包含键的键值对保存一个新文件(我认为这就是它的名称)。

假设我的 yaml 文件如下所示:

info:
 - name: test
 version: 1.0
images:
 - name: myimage
 newtag: 1.0-beta

我可以通过简单的方式将 yaml 文件读入 Python 中的变量:

with open('test.yaml', 'r') as f:
    data = yaml.load(f, Loader=yaml.FullLoader)
f.close()

我可以使用以下方法保存一个仅包含“图像”值的新 yaml 文件:

with open('new.yaml', 'w') as outfile:
    yaml.dump(data.get("images"), outfile, default_flow_style=False)
outfile.close()

输出文件如下所示:

 - name: myimage
 newtag: 1.0-beta

我正在尝试对其进行编码,以便输出文件不仅具有上面的 2 行,还包括顶部的“图像:”键。这个新的 yaml 文件应该和原来的一样,但是除了“images:”之外基本上没有其他键值。我还意识到“图像:”下面的值是缩进的。我发现这很棘手,感谢您的帮助。

标签: pythonyamlpyyaml

解决方案


如果要输出单个键值对,则需要提供一个带有一个条目的 dict:

yaml.dump(dict(images=data.get("images")), outfile, default_flow_style=False)

推荐阅读