Как только вы загрузите этот файл YAML, ваш pod
будет диктовкой с одним ключом spec
.Вы можете проверить значение для этого ключа (print(pod['spec']
), и вы увидите, что это dict, с одним ключом containers
.Поскольку вы хотите добавить дополнительный ключ nodeSelector
к этому диктовку, вы должны добавить к pod['spec']
:
pod['spec']['nodeSelector'] = dict(key='value')
Обратите внимание, что key:value
вы имели в своем выводе (без пробела после :
и без кавычек вокруг key
и value
), это не отображение, а одиночная скалярная строка.
«Решение», данное @zwer в его комментарии:
pod["spec"] = {"nodeSelector": {"key": "val"}}
неверно, поскольку выдает дамп в виде:
spec:
nodeSelector:
key: val
, т. Е. Заменяет значение на spec
и, таким образом, удаляет существующий файл dict / mapping с ключом containers
.