xoa.misc.dict_merge

xoa.misc.dict_merge(*dd, mergesubdicts=True, mergelists=False, mergetuples=False, uniquify=False, skipnones=True, overwriteempty=False, cls=None, **kwargs)[source]

Merge dictionaries

First dictionaries have priority over next

Parameters:
  • dd – Argument are interpreted as dictionary to merge. Those who are not dictionaries are skipped.

  • mergesubdicts (optional) – Also merge dictionary items (like in a tree).

  • mergetuples (optional) – Also merge tuple items.

  • mergelists (optional) – Also merge list items.

  • uniquify (optional) – Uniquify lists and tuples.

  • skipnones (optional) – Skip Nones.

  • overwriteempty (optional) – Overwrite value that does are not True when converted to bool.

  • cls (optional) – Class to use. Default to the first class found in arguments that is not a dict, else defaults to dict.

Example

In [1]: d1 = dict(a=3, b=5, e=[1, 2])

In [2]: d2 = dict(a=5, c=7, e=[3, 4])

In [3]: print(dict_merge(d1, d2, mergelists=True))
{'a': 3, 'b': 5, 'e': [1, 2, 3, 4], 'c': 7}