Слияние двух вложенных диктов сгруппированным ключом - PullRequest
0 голосов
/ 13 апреля 2020

У меня есть два вложенных списка диктов, вроде слияния с одним и тем же сгруппированным ключом. Например:

DIC1:

{'SW-01': [{'Aip': '192.168.2.1',
        'Bip': '192.168.2.0',
       {'Aip': '192.168.3.3',
        'Bip': '192.168.3.2'}]}

DIC2:

{'SW-01': [{'Aip': '192.168.1.19',
            'Bip': '192.168.1.18'}],
 'SW-02': [{'Aip': '192.168.1.83',
            'Aip': '192.168.1.82',
           {'Aip': '192.168.1.85',
            'Bip': '192.168.1.84'}]}

Как объединить два диктанта выше, с ключом группы? Вот код, который я использовал, пытался объединить, но я получаю данные SW1 дважды от DIC1 и DIC2.

    d = {}
    for key in (*dic1, *dic2):
        try:
            d.setdefault(key,[]).append(dic1[key])
        except KeyError:
            pass
        try:
            d.setdefault(key,[]).append(dic2[key])
        except KeyError:
            pass
    pprint(d)
...