Cómo agregar listas en un diccionario anidado en Python

William

Tengo 2 diccionarios anidados:

 grouped1 ={'LabelStat': { 'Carrier': ['1', '1'],
                           'FormID': ['0201', '0430']},
          
             'McAfee': {'DatDate': 'Not Available',
            '            DatVersion': 'Not Available'}
           }
    
    
 grouped2 ={'LabelStat': {'Carrier': ['2', '2'],
                          'FormID': ['10201', '10430']},
         'McAfee': {'DatDate': 'Available',
            'DatVersion': 'Available',}
           }

Y quiero agregar estos 2 diccionarios, el resultado debería verse así:

com_grouped = {
    'LabelStat': {'Carrier': ['1', '1','2','2'],
                   'FormID': ['0201', '0430','10201', '10430']}
             
    'McAfee': {'DatDate': ['Not Available','Available']
               'DatVersion': ['Not Available','Available']}
    
             }

Primero intentado:

com_grouped = grouped1.update(grouped2)
print(com_grouped)

Y el resultado es ninguno.

Entonces me cansé:

com_grouped = grouped1
com_grouped=com_grouped.update(grouped2)
print(com_grouped)

¡Fuera todavía ninguno!

Ajax1234

Puede usar la recursividad con collections.defaultdict:

from collections import defaultdict
import re
def merge(*d):
   v = defaultdict(list)
   for i in d:
      for a, b in i.items():
         v[re.sub('^\s+', '', a)].append(b)
   return {a:merge(*b) if all(isinstance(j, dict) for j in b) 
            else [i for j in b for i in (j if isinstance(j, list) else [j])] 
              for a, b in v.items()}

print(merge(grouped1, grouped2))

Producción:

{'LabelStat': {'Carrier': ['1', '1', '2', '2'], 'FormID': ['0201', '0430', '10201', '10430']}, 'McAfee': {'DatDate': ['Not Available', 'Available'], 'DatVersion': ['Not Available', 'Available']}}

Este artículo se recopila de Internet, indique la fuente cuando se vuelva a imprimir.

En caso de infracción, por favor [email protected] Eliminar

Editado en
0

Déjame decir algunas palabras

0Comentarios
Iniciar sesiónRevisión de participación posterior

Artículos relacionados

agregar muchas listas en un diccionario anidado en bucle for en python

Cómo agregar valores en un diccionario anidado

¿Cómo agregar una nueva clave en el diccionario existente y derivar un diccionario anidado en Python?

¿Cómo agregar múltiples claves y valores en un diccionario anidado usando Python?

¿Cómo agregar múltiples claves y valores en un diccionario anidado usando Python?

Manipular un diccionario / árbol de listas anidado en Python 3

Agregar un nuevo elemento a un diccionario anidado en python

¿Cómo agregar varias listas a un diccionario anidado?

Listas anidadas en un diccionario anidado

Cómo agregar dinámicamente 2 listas diferentes a un diccionario en Python

Cómo obtener un diccionario anidado de JSON en Python

¿Cómo hago un diccionario anidado en Python?

¿Cómo combino dos listas en un diccionario en Python?

Cómo fusionar 3 listas en un diccionario en Python

Cómo agregar un par clave / valor en un diccionario anidado

Cómo convertir un diccionario normal en un diccionario anidado

Cómo convertir un diccionario normal en un diccionario anidado

Python 2.7.12: Cómo combinar dos listas en un diccionario

¿Cómo simplificar un diccionario de listas anidadas en Python?

¿Cómo inicializo un diccionario de listas vacías en Python?

¿Cómo inicializo un diccionario de listas vacías en Python?

¿Cómo agrupar listas anidadas (Python) en un diccionario?

Agregar a un diccionario anidado en una columna en Pandas

Buscar clave en un diccionario anidado mezclado con listas

Cómo convertir listas en un diccionario a diccionarios en listas (Python)

Definiendo un diccionario anidado en Python

Iterar un diccionario anidado en Python

Cómo modificar un campo en un registro de diccionario de Pymongo anidado en Python

¿Cómo implemento un hash de varias teclas en Perl como un diccionario anidado en Python?