代码之家  ›  专栏  ›  技术社区  ›  Florent

如何合并不同嵌套级别的嵌套字典?[副本]

  •  2
  • Florent  · 技术社区  · 6 年前

    这个问题已经有了答案:

    我想合并这两个嵌套字典:

    dict1 = {'NYSE': {'day': {'USD': {'missing': ['z', 'y', 'x']}}}}
    dict2 = {'NYSE': {'hour': {'USD': {'missing': ['z', 'y', 'x']}}}}
    

    结果会是这样的:

    {
        'NYSE': {
            'day': {
                'USD': {
                    'missing': ['z', 'y', 'x']
                }
            },
            'hour': {
                'USD': {
                    'missing': ['z', 'y', 'x']
                }
            }
        }
    }
    

    在某些情况下,我需要合并第二级词典,如下所示:

    dict1 = {'NYSE': {'day': {'USD': {'missing': ['z', 'y', 'x']}}}}
    dict3 = {'NYSE': {'day': {'EUR': {'missing': ['z', 'y', 'x']}}}}
    

    有什么简单的方法可以做到这一点吗?

    当我使用 dict1.update(dict2) 它没有给出预期的结果,因为 dict2 变成 dict1 .

    我可以这样做,但它一点也不灵活。

    dict1['NYSE']['hour'] = {'USD': {'missing': ['z', 'y', 'x']}}
    

    谢谢您,

    1 回复  |  直到 6 年前
        1
  •  3
  •   Gabriel Ben Compte    6 年前

    您可以使用:

    dict1['NYSE'].update(dict2['NYSE'])