python - 通过遵循 Python 中值的特定路径替换嵌套字典中的值
问题描述
我有一个嵌套字典,我试图使用由该特定值的键组成的路径替换键的给定值。
基本示例:
path_to_value = ["fruit", "apple", "colour"]
replacement_value = "green"
dictionary = {"fruit": {"apple": {"colour": "red"}, "banana": {"colour": "yellow", "size": "big"}}}
我在 Stackoverflow 上找到了一个函数,但它递归地替换了 dict 中我不想要的所有值。
def change_key(d, required_key, new_value):
for k, v in d.items():
if isinstance(v, dict):
change_key(v, required_key, new_value)
if k == required_key:
d[k] = new_value
任何帮助,将不胜感激。
解决方案
我认为这样的事情应该可行:缩小使用除最后一个键之外的所有键来获取要修改的字典,然后使用最后一个键对其进行修改。
def change_key(d, path_to_value, new_value):
for key in path_to_value[:-1]:
d = d[key]
d[path_to_value[-1]] = new_value
推荐阅读
- python - Django:使用图像设置模型
- javascript - 尝试获取元素的 HTML 代码值时出现奇怪的输出?
- machine-learning - 没有 pytesseract 的 OCR
- laravel - Laravel:如何通过 GET 请求触发的控制器使用重定向传递数据?
- android - popStackImmediate() 导致非法状态异常
- android - 在 Android 中获取数据 deom Firestore
- javascript - 使用 javascript 从纯文本过滤和创建 JSON 对象
- json - AWS SES 模板 html 部分是多行
- java - 如何让扫描仪类浮动?
- vba - 如何通过 Postman 从 CompaniesHouse API 下载文档?