python获取多层字典(dict)的值

89 阅读1分钟
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)}')