Maneras de convertir strings a diccionario

El diccionario es una colección desordenada en Python que almacena valores de datos como un mapa, es decir, un par clave: valor. Para convertir una string en un diccionario, la string almacenada debe ser tal que se pueda generar un par clave:valor a partir de ella. Este artículo muestra varias formas de convertir una string en un diccionario. Método 1: dividir una string para generar el par clave:valor del diccionario En este enfoque, la string dada será analizada y con el uso del método split() , la string se dividirá de tal manera que genere la clave: par de valores para la creación de un diccionario. A continuación se muestra la implementación del enfoque. 

Python3

# Python implementation of converting
# a string into a dictionary
 
# initialising string
str = " Jan = January; Feb = February; Mar = March"
 
# At first the string will be splitted
# at the occurrence of ';' to divide items
# for the dictionaryand then again splitting
# will be done at occurrence of '=' which
# generates key:value pair for each item
dictionary = dict(subString.split("=") for subString in str.split(";"))
 
# printing the generated dictionary
print(dictionary)
Producción:

{' Feb ': ' February', ' Mar ': ' March', ' Jan ': ' January'}

Método 2: Usar 2 strings para generar el par clave:valor para el diccionario En este enfoque, se considerarán 2 strings diferentes y una de ellas se usará para generar claves y otra se usará para generar valores para el diccionario. Después de manipular ambas strings, los elementos del diccionario se crearán utilizando ese par clave:valor. A continuación se muestra la implementación del enfoque. 

Python3

# Python implementation of converting
# a string into a dictionary
 
# initialising first string
str1 = "Jan, Feb, March"
str2 = "January | February | March"
 
# splitting first string
# in order to get keys
keys = str1.split(", ")
 
# splitting second string
# in order to get values
values = str2.split("|")
 
# declaring the dictionary
dictionary = {}
 
# Assigning keys and its
# corresponding values in
# the dictionary
for i in range(len(keys)):
    dictionary[keys[i]] = values[i]
 
# printing the generated dictionary
print(dictionary)
Producción:

{'Jan': 'January ', 'Feb': ' February ', 'March': ' March'}

Método 3: Uso del método zip() para combinar el par clave:valor extraído de 2 strings En este enfoque, nuevamente se usarán 2 strings, una para generar claves y otra para generar valores para el diccionario. Cuando se almacenan todas las claves y valores, se utilizará el método zip() para crear el par clave:valor y generar así el diccionario completo. A continuación se muestra la implementación del enfoque. 

Python3

# Python implementation of converting
# a string into  a dictionary
 
# initialising first string
str1 = "Jan, Feb, March"
str2 = "January | February | March"
 
# splitting first string
# in order to get keys
keys = str1.split(", ")
 
# splitting second string
# in order to get values
values = str2.split("|")
 
# declaring the dictionary
dictionary = {}
 
# Merging all keys and values
# to generate items for
# the dictionary
dictionary = dict(zip(keys, values))
 
# printing the generated dictionary
print(dictionary)
Producción:

{' March': ' March', 'Jan': 'January ', ' Feb': ' February '}

Método 4: si la string tiene la forma de un diccionario de strings En este enfoque, una string que ya tiene la forma de un diccionario de strings, es decir, la string tiene una expresión de diccionario, se convierte en un diccionario usando el método ast.literal_eval(). A continuación se muestra la implementación del enfoque. 

Python3

# Python implementation of converting
# a string into  a dictionary
 
# importing ast module
import ast
 
# initialising string dictionary
str = '{"Jan" : "January", "Feb" : "February", "Mar" : "March"}'
 
# converting string into dictionary
dictionary = ast.literal_eval(str)
 
# printing the generated dictionary
print(dictionary)
Producción:

{'Feb': 'February', 'Jan': 'January', 'Mar': 'March'}

Publicación traducida automáticamente

Artículo escrito por RISHU_MISHRA 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 *