【发布时间】:2023-02-02 20:13:01
【问题描述】:
我想在 yaml 内容下面添加额外的标签值。
基础 Yaml
infra:
etcd:
container:
replica_count: 3
resource:
limit_memory: 1000Mi
limit_cpu: 1000m
requests_memory: 1000Mi
requests_cpu: 1000m
volume:
storageClaim: 5Gi
storageCapacity: 5Gi
kafka:
container:
replica_count: 3
resource:
limit_memory: 2000Mi
limit_cpu: 1000m
requests_memory: 2000Mi
requests_cpu: 1000m
volume:
storageClaim: 10Gi
storageCapacity: 10Gi
zk:
container:
replica_count: 3
resource:
limit_memory: 500Mi
limit_cpu: 1000m
requests_memory: 500Mi
requests_cpu: 1000m
volume:
storageClaim: 10Gi
storageCapacity: 10Gi
更新后
infra:
etcd:
container:
**image:
tag: etcd-21.3.4**
replica_count: 3
resource:
limit_memory: 1000Mi
limit_cpu: 1000m
requests_memory: 1000Mi
requests_cpu: 1000m
volume:
storageClaim: 5Gi
storageCapacity: 5Gi
kafka:
container:
**image:
tag: kafka-21.3.4**
replica_count: 3
resource:
limit_memory: 2000Mi
limit_cpu: 1000m
requests_memory: 2000Mi
requests_cpu: 1000m
volume:
storageClaim: 10Gi
storageCapacity: 10Gi
zk:
container:
**image:
tag: zk-21.3.4**
replica_count: 3
resource:
limit_memory: 500Mi
limit_cpu: 1000m
requests_memory: 500Mi
requests_cpu: 1000m
volume:
storageClaim: 10Gi
storageCapacity: 10Gi
我是 python 和 yaml 处理的新手,任何参考都会有所帮助。 我可以打开和关闭文件,但无法获得添加/删除/更新新标签和值的具体指南。甚至 contents.update 也在第一次图像标签更新后删除数据。
import yaml
# Read the YAML file
with open ('in.yaml', 'r') as read_file:
contents = yaml.safe_load(read_file)
contents['infra']['etcd'] = 'Image'
# Write the YAML file with sort_keys=False to retain same order
with open('in.yaml', 'w') as write_file:
yaml.dump(contents, write_file, sort_keys=False)
【问题讨论】:
-
我认为
**突出显示了添加。标量开头的*在 YAML 中具有特殊含义(表示先前由锚点 (&) 定义的数据的别名)。
标签: python python-3.x yaml