python:如何在yamlfi中添加新的键和值

2024-06-08 17:11:08 发布

您现在位置:Python中文网/ 问答频道 /正文

我有下面的YAML文件。我需要使用python用一个新的键值对更新YAML文件。在

我正在执行以下操作,但它给了我错误:

pod = mylib.load_yaml("net/pod.yaml")
pod['spec']['nodeSelector']['key']='val'

它错误地说KeyError:'nodeSelector'

^{pr2}$

我需要用新的键值更新它

spec:
  containers:
  - image: ceridwen/networking:v1
    imagePullPolicy: Always
    name: networking
    readinessProbe:
      tcpSocket:
        port: 5000
      initialDelaySeconds: 5
      periodSeconds: 1
    restartPolicy: Always
  nodeSelector:
    key: value 

Tags: 文件keyyamlnet错误loadvalalways
1条回答
网友
1楼 · 发布于 2024-06-08 17:11:08

一旦加载了该YAML文件,您的pod就是一个带有单键spec的dict。您可以检查该键(print(pod['spec'])的值,您将看到它是dict,只有一个键containers。既然您想向该dict添加一个额外的键nodeSelector,那么您应该将其添加到pod['spec']

pod['spec']['nodeSelector'] = dict(key='value')

请注意,输出中的key:value(在:后面没有空格,keyvalue之间没有引号)不是一个映射,而是一个标量字符串。在


@zwer在评论中给出的“解决方案”:

pod["spec"] = {"nodeSelector": {"key": "val"}} 不正确,因为它将转储为:

^{pr2}$

例如,替换spec的值,从而用键containers删除现有的dict/映射。在

相关问题 更多 >