如何在python中合并两个数据结构

use*_*005 4 python recursion dictionary iterator data-structures

我有两个复杂的数据结构(即_to和_from),我想用_from的相同实体覆盖_to的实体.我举了这个例子.

# I am having two data structure _to and _from
# I want to override _to from _from
_to = {'host': 'test',
       'domain': [
           {
               'ssl': 0,
               'ssl_key': '',
           }
       ],
       'x': {}
       }
_from = {'status': 'on',
         'domain': [
             {
                 'ssl': 1,
                 'ssl_key': 'Xpyn4zqJEj61ChxOlz4PehMOuPMaxNnH5WUY',
                 'ssl_cert': 'nuyickK8uk4VxHissViL3O9dV7uGSLF62z52L4dAm78LeVdq'
             }
         ]
         }
### I want this output
_result = {'host': 'test',
           'status': 'on',
           'domain': [
               {
                   'ssl': 1,
                   'ssl_key': 'Xpyn4zqJEj61ChxOlz4PehMOuPMaxNnH5WUY',
                   'ssl_cert': 'nuyickK8uk4VxHissViL3O9dV7uGSLF62z52L4dAm78LeVdq'
               }
           ],
           'x': {}
           }
Run Code Online (Sandbox Code Playgroud)

用例2:

_to = {'host': 'test',
       'domain': [
           {
               'ssl': 0,
               'ssl_key': '',
               'ssl_cert': 'nuyickK8uk4VxHissViL3O9dV7uGSLF62z52L4dAm78LeVdq',
               "abc": [],
               'https': 'no'
           }
       ],
       'x': {}
       }
_from = {
         'domain': [
             {
                 'ssl': 1,
                 'ssl_key': 'Xpyn4zqJEj61ChxOlz4PehMOuPMaxNnH5WUY',
                 'ssl_cert': 'nuyickK8uk4VxHissViL3O9dV7uGSLF62z52L4dAm78LeVdq'
             }
         ]
         }
Run Code Online (Sandbox Code Playgroud)

dict.update(dict2)不会帮助我,因为这将删除_to dict中的额外键.

Elm*_*lmo 7

这很简单:

_to.update(_from)
Run Code Online (Sandbox Code Playgroud)