如何在 src dict 下转换(嵌套 dict)

{
    'a':{'b':1, 'c':{'d':2}},
    'b':3,
    'c':{'d':4, 'a':5}
}

到下面的 dst dict(未嵌套)?
{
    'a.b':1,
    'a.c.d':2,
    'b':3,
    'c.d':4,
    'c.a':5
}

src 字典是嵌套字典。并且 dst dict 不是嵌套的 dict。

任何简单的方法来做这个约定?

最佳答案

这是用于展平字典的 python 包。你可以用这个

https://pypi.org/project/flatten-dict/

执行:

from flatten_dict import flatten

nested = {'a': {'b': 1, 'c': {'d': 2}},
          'b': 3,
          'c': {'d': 4, 'a': 5}}

flat = flatten(nested, reducer=lambda k1, k2: k2 if k1 is None else k1 + '.' + k2)
print(flat)
# {'a.b': 1, 'a.c.d': 2, 'b': 3, 'c.d': 4, 'c.a': 5}

关于python - 如何将python嵌套dict转换为非嵌套dict?,我们在Stack Overflow上找到一个类似的问题:https://stackoverflow.com/questions/55624280/

10-16 09:25