python:将两个嵌套字典与字典组合为顶级键的值

我想结合两个嵌套的词典

d1 = {"admin": {"key1": "v2"}}
d2 = {"admin": {"key2": "v3"},
      "user": {"something": "else"}}

这应该结合到:

d = {"admin": {"key1": "v2",
               "key2": "v3"},
     "user": {"something": "else"}}

除了迭代第一个键之外,还有一种简单的方法吗?

最佳答案 如果只有一个嵌套级别:

>>> d1 = {"admin": {"key1": "v2"}}
>>> d2 = {"admin": {"key2": "v3"},
...       "user": {"something": "else"}}
>>> keys = list(d1) + list(d2)
>>> d = {k: dict(d1.get(k, {}).items() + d2.get(k, {}).items()) for k in keys}
>>> d
{'admin': {'key1': 'v2', 'key2': 'v3'}, 'user': {'something': 'else'}}

更深的嵌套将需要递归.

点赞