gpt4 book ai didi

python - 使用python将参数和值写入yaml

转载 作者:太空宇宙 更新时间:2023-11-03 15:04:31 25 4
gpt4 key购买 nike

我有以下 YAML 文件:

heat_template_version: 2015-10-15
parameters:

image:
type: string
label: Image name or ID
default: CirrOS
private_network_id:
type: string
label: Private network name or ID
floating_ip:
type: string

我想将 key->default 添加到 private_network_id 和Floating_ip(如果默认值不存在),并向默认键添加值(我从用户那里获得)

如何在 python 中实现这一点?

生成的 YAML 应如下所示:

heat_template_version: 2015-10-15
parameters:

image:
type: string
label: Image name or ID
default: CirrOS
private_network_id:
type: string
label: Private network name or ID
default: <private_network_id>
floating_ip:
type: string
default: <floating_ip>

最佳答案

对于这种往返,您应该使用 ruamel.yaml (免责声明:我是该包的作者)。

假设您的输入位于文件 input.yaml 和以下程序中:

from ruamel.yaml import YAML
from pathlib import Path

yaml = YAML()
path = Path('input.yaml')

data = yaml.load(path)
parameters = data['parameters']
# replace assigned values with user input
parameters['private_network_id']['default'] = '<private_network_id>'
parameters['floating_ip']['default'] = '<floating_ip>'
yaml.dump(data, path)

之后您的文件将与您请求的输出完全匹配。

请注意,YAML 文件中的注释以及键顺序会自动保留(YAML 规范不保证)。

如果您仍在使用 Python2(标准库中没有 pathlib),请使用 from ruamel.std.pathlib import Path 或重写 .load ().dump() 行包含适当打开的旧样式文件对象。例如

with open('input.yaml', 'w') as fp:
yaml.dump(data, fp)

关于python - 使用python将参数和值写入yaml,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/44773445/

25 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com