Python – Convertir string en lista de diccionarios

Dada la lista de diccionarios en formato de string, convertir en lista real de diccionarios.

Entrada : test_str = [“[{‘Gfg’: 3, ‘Best’: 8}, {‘Gfg’: 4, ‘Best’: 8}]”]
Salida : [[{‘Gfg’: 3, ‘Best ‘: 8}, {‘Gfg’: 4, ‘Best’: 8}]]
Explicación : string convertida en lista de diccionarios.

Entrada : test_str = [“[{‘Gfg’: 3, ‘Best’: 8}]”]
Salida : [[{‘Gfg’: 3, ‘Best’: 8}]]
Explicación : String convertida a lista de diccionarios .

Método #1: Usar json.loads() + replace()

La combinación de las funciones anteriores se puede utilizar para resolver este problema. En esto, reemplazamos las strings internas usando replace() y la lista de diccionarios se hace usando loads().

Python3

# Python3 code to demonstrate working of 
# Convert String to List of dictionaries
# Using json.loads + replace()
import json
  
# initializing string
test_str = ["[{'Gfg' : 3, 'Best' : 8}, {'Gfg' : 4, 'Best' : 9}]"]
  
# printing original string
print("The original string is : " + str(test_str))
  
# replace() used to replace strings 
# loads() used to convert 
res = [json.loads(idx.replace("'", '"')) for idx in test_str]
      
# printing result 
print("Converted list of dictionaries : " + str(res)) 
Producción

The original string is : ["[{'Gfg' : 3, 'Best' : 8}, {'Gfg' : 4, 'Best' : 9}]"]
Converted list of dictionaries : [[{'Gfg': 3, 'Best': 8}, {'Gfg': 4, 'Best': 9}]]

Método #2: Usar eval()

Esta es una de las formas en que se puede realizar esta tarea. El eval(), evalúa internamente el tipo de datos y devuelve el resultado requerido.

Python3

# Python3 code to demonstrate working of 
# Convert String to List of dictionaries
# Using json.loads + replace()
  
# initializing string
test_str = "[{'Gfg' : 3, 'Best' : 8}, {'Gfg' : 9, 'Best' : 9}]"
  
# printing original string
print("The original string is : " + str(test_str))
  
# eval() used to convert 
res = list(eval(test_str))
      
# printing result 
print("Converted list of dictionaries : " + str(res)) 
Producción

The original string is : [{'Gfg' : 3, 'Best' : 8}, {'Gfg' : 9, 'Best' : 9}]
Converted list of dictionaries : [{'Gfg': 3, 'Best': 8}, {'Gfg': 9, 'Best': 9}]

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 *