我正在尝试对嵌套字典执行操作(从yaml文件中检索的数据):
var result = (0.8149863M * 100).ToIntegerPercentage ();
我正在尝试使用以下输入修改上述内容:
data = {'services': {'web': {'name': 'x'}}, 'networks': {'prod': 'value'}}
我将上面的内容转换为索引列表{'services.web.name': 'new'}
。但是我无法/不确定如何在循环中执行以下操作:
['services', 'web', 'name']
这样我可以修改dict数据。我打算在上面的字典中改变其他值(它是广泛的),所以我需要一个解决方案,在我必须改变的情况下工作,EG:
data['services']['web']['name'] = new
有一种简单的方法吗?任何帮助表示赞赏。
答案 0 :(得分:0)
您可以在移动引用时迭代键:
data = {'networks': {'prod': 'value'}, 'services': {'web': {'name': 'x'}}}
modification = {'services.web.name': 'new'}
for key, value in modification.items():
keyparts = key.split('.')
to_modify = data
for keypart in keyparts[:-1]:
to_modify = to_modify[keypart]
to_modify[keyparts[-1]] = value
print(data)
,并提供:
{'networks': {'prod': 'value'}, 'services': {'web': {'name': 'new'}}}