Python 字典:检查字典中是否存在嵌套键列表并更新值

Python Dictionary : Check if a list of nested keys exists in a dictionary and update value

我有一本字典,大概如下

{
  "level1": {
     "level2": {
       "level3": "some value"
     }
  }
}

字典中的键将是动态的。但是,会有一个需要检查的密钥列表。

例如:['level1', 'level2', 'level3']

我需要检查字典中是否存在路径,例如 level1->level2->level3,如果存在则更新 level3 的值。

你可以这样做

def check_or_update(dct: dict, key_list: list, value) -> bool:
    d = dct
    for key in key_list[:-1]:
        if key in d:
            d = d[key]
        else:
            return False

    if key_list[-1] not in d:
        return False
    d[key_list[-1]] = value
    return True
def get(d, keys):
    return reduce(lambda d1, key: d1.get(key, {}), keys, d)

# check if key exists
print(not bool(get(the_dict, ['level1', 'level2', 'level3'])))