def get_multilayer_dict_value(data: dict, key: str):
"""获取多层字典的值"""
c_key, n_key = key.split('.', 1) if key.find('.') != -1 else [key, None]
val = data.get(c_key)
if n_key != None:
return get_multilayer_dict_value(val, n_key) if isinstance(val, dict) else None
return val
使用示例
student_dict ={
'sn':'100001',
'name':'lili',
'scores':{
'chinese':120,
'math':125,
'english':105
}
}
key1='name'
key2='scores.chinese'
print(f'key1: {key1} , val: {get_multilayer_dict_value(student_dict,key1)}')
print(f'key2: {key2} , val: {get_multilayer_dict_value(student_dict,key2)}')