Python | Conversión de contenido de string a diccionario

A veces, nos alimentan con strings y es posible que tengamos que convertir su contenido al diccionario. La string puede tener un formato específico que podría convertirse en clave-valor. Este tipo de problema es bastante común en el dominio de Machine Learning. Analicemos ciertas formas en que se puede resolver este problema.

Método n.º 1: usar split()+ comprensión del diccionario
La combinación del método anterior se puede usar para realizar esta tarea en particular. Este es el método de 2 procesos. En el primer paso, la string se convierte en una lista mediante la división y luego se vuelve a convertir en un diccionario mediante la comprensión del diccionario.

# Python3 code to demonstrate working of
# Converting String content to dictionary
# Using dictionary comprehension + split()
  
# initializing string 
test_str = "Gfg = 1, Good = 2, CS = 3, Portal = 4"
  
# printing original string 
print("The original string is : " + test_str)
  
# Using dictionary comprehension + split()
# Converting String content to dictionary
res = {key: int(val) for key, val in (item.split('=')
                   for item in test_str.split(', '))}
  
# printing result 
print("The newly created dictionary : " + str(res))
Producción :

The original string is : Gfg = 1, Good = 2, CS = 3, Portal = 4
The newly created dictionary : {' CS ': 3, 'Gfg ': 1, ' Portal ': 4, ' Good ': 2}

Método n.º 2: usoeval()
Este problema en particular se puede resolver mediante la función incorporada evalque evalúa internamente la string y la convierte en un diccionario según la condición.

# Python3 code to demonstrate working of
# Converting String content to dictionary
# Using eval()
  
# initializing string 
test_str = "Gfg = 1, Good = 2, CS = 3, Portal = 4"
  
# printing original string 
print("The original string is : " + test_str)
  
# Using eval()
# Converting String content to dictionary
res = eval('dict(% s)' % test_str)
  
# printing result 
print("The newly created dictionary : " + str(res))

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 *