Python – Lista de diccionario anidado de clave única Unnest

A veces, mientras trabajamos con datos de Python, podemos tener un problema en el que necesitamos realizar el anidamiento de todos los diccionarios que tienen un solo anidamiento de claves, es decir, una sola clave y valor y se puede apuntar fácilmente a la clave externa directamente. Este tipo de problema es común en dominios que requieren optimización de datos. Analicemos ciertas formas en que se puede realizar esta tarea.

Entrada : test_list = [{‘gfg’: {‘data’: 1}}, {‘is’: {‘data’: 5, ‘geeks’: 7}}] Salida: {‘is’: 5,
gfg ‘: 1}

Entrada : test_list = [{‘gfg’: {‘data’: ‘best’}}]
Salida : {‘gfg’: ‘best’}

Método n.º 1: Usar bucle +items()
La combinación de los métodos anteriores se puede usar para resolver este problema. En esto, iteramos por los valores en la lista, usando loop y extrayendo todos los elementos del diccionario usando items() y realizamos la creación de un nuevo diccionario usando el método de fuerza bruta.

# Python3 code to demonstrate working of 
# Unnest single Key Nested Dictionary List
# Using loop + items()
  
# initializing list
test_list = [{'gfg' : {'data' : 1}}, {'is' : {'data' : 5}}, {'best' : {'data' : 4}}]
  
# printing original list
print("The original list is : " + str(test_list))
  
# initializing key 
data_key = 'data'
  
# Unnest single Key Nested Dictionary List
# Using loop + items()
res = dict()
for sub in test_list:
    for key, val in sub.items():
        res[key] = sub[key][data_key]
  
# printing result 
print("The constructed Dictionary list : " + str(res)) 
Producción :

La lista original es: [{‘gfg’: {‘data’: 1}}, {‘is’: {‘data’: 5}}, {‘best’: {‘data’: 4}}] La
construida Lista de diccionarios: {‘gfg’: 1, ‘mejor’: 4, ‘es’: 5}

Método #2: Uso de la comprensión de listas
Esta es otra forma más en la que se puede realizar esta tarea. En esto, realizamos la solución con un enfoque similar pero de forma abreviada utilizando la comprensión de listas.

# Python3 code to demonstrate working of 
# Unnest single Key Nested Dictionary List
# Using list comprehension
  
# initializing list
test_list = [{'gfg' : {'data' : 1}}, {'is' : {'data' : 5}}, {'best' : {'data' : 4}}]
  
# printing original list
print("The original list is : " + str(test_list))
  
# initializing key 
data_key = 'data'
  
# Unnest single Key Nested Dictionary List
# Using list comprehension
res = {x : y[data_key] for idx in test_list for x, y in idx.items()}
  
# printing result 
print("The constructed Dictionary list : " + str(res)) 
Producción :

La lista original es: [{‘gfg’: {‘data’: 1}}, {‘is’: {‘data’: 5}}, {‘best’: {‘data’: 4}}] La
construida Lista de diccionarios: {‘gfg’: 1, ‘mejor’: 4, ‘es’: 5}

Publicación traducida automáticamente

Artículo escrito por manjeet_04 y traducido por Barcelona Geeks. The original can be accessed here. Licence: CCBY-SA

Deja una respuesta

Tu dirección de correo electrónico no será publicada. Los campos obligatorios están marcados con *