我正在尝试动态更新一个包含DICT列表的yaml文件。下面是我的原始yaml文件的一个示例
images:
- name: image1
tag: v1
- name: image2
tag: v1
我想循环浏览图像,只更新image1的标记,然后将其写入yaml文件。下面是我想要的结果文件
images:
- name: image1
tag: v2
- name: image2
tag: v1
我目前有一个脚本,允许我更新和打印新的dict,但我无法让它在yaml文件中呈现。下面是我的代码示例
#!/usr/env python
import yaml
image_file = yaml.load(open(file.yaml, "r"))
def update_dict(dict, path, value):
dict_to_update = dict
key_list = path.split(".")
for k in key_list[:-1]:
dict_to_update = dict_to_update[k]
dict_to_update[key_list[-1]] = value
images = image_file['images']
for image in images:
if image['name'] == 'image1':
update_dict(image, "tag", "v2")
print image
#prints {'tag': 'v2', 'name': 'image1'}
with open(file.yaml, "w") as file:
yaml.dump(image, file)
这将完全覆盖file.yaml,导致
name: image1
tag: v2
有没有办法只动态更新yaml文件的一部分?或者我需要存储整个dict列表,修改所需内容,然后用新的dict列表覆盖file.yaml吗
目前没有回答
相关问题 更多 >
编程相关推荐