字典深拷贝、递归更新
字典深拷贝
对dict类型,或者json的数据进行深度更新
相当于实现JS的深拷贝
代码:
def recursive_update(default:dict, custom:dict) -> dict:
"""
Description 递归更新字典对象
- param default :{dict} 需要更新的源字典
- param custom :{dict} 承载新数据的字典
returns `{dict}` {description}
"""
if not isinstance(default, dict) or not isinstance(custom, dict):
raise TypeError('Params of recursive_update should be dicts')
for key in custom:
if isinstance(custom[key], dict) and isinstance(
default.get(key), dict):
default[key] = recursive_update(default[key], custom[key])
else:
default[key] = custom[key]
return default
使用:
dict1 = { "name":"a" }
dict2 = { "name":"b" }
recursive_update(dict1, dict2)