def _update(d, u):
"""Update a nested dict recursively in place.
>>> _update({'a': 0, 'b': 2}, {'a': 1})
{'a': 1, 'b': 2}
>>> _update({'a': {'b': 1}}, {'a': 0})
{'a': 0}
>>> d = _update({'a': {'b': 1}}, {'a': {'c': 2}})
>>> d == {'a': {'b': 1, 'c': 2}}
True
"""
for k, v in six.iteritems(u):
r = d.get(k, {})
if isinstance(v, Mapping) and isinstance(r, Mapping):
_update(r, v)
d[k] = r
else:
d[k] = u[k]
return d
评论列表
文章目录