python - 如何在 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:”之外基本上没有其他键值。我还意识到“图像:”下面的值是缩进的。我发现这很棘手,感谢您的帮助。
解决方案
如果要输出单个键值对,则需要提供一个带有一个条目的 dict:
yaml.dump(dict(images=data.get("images")), outfile, default_flow_style=False)
推荐阅读
- linux - OpenEdx 本机安装失败
- django - 带有 Parler 翻译的 Django Admin 生成 IntegrityError
- excel - 查找与 1 个单元格的时差
- jenkins - Jenkins subversion - javax.net.ssl.SSLHandshakeException:没有适当的协议(协议被禁用或密码套件不合适)
- c# - HttpWebRequest 复制大文件并得到 404 未找到
- javascript - 标题不变 | 角 4
- c# - ASP.NET Core 2.1 中的 Taghelpers 未处理,即使在新模板中也是如此
- javascript - 防止点击在 Quasar q-select 之外传播
- javascript - 使用 html 和 jquery 在显示时和上传到服务器之前获取文件名
- php - sqlserver语法错误的表格式