Skip to main content

字典深拷贝、递归更新

字典深拷贝

对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)