Python String a un dict

Python String a un dict

Las cadenas se utilizan para enviar/comunicar datos a través de la red, pero cuando esta cadena es recibida por un programa, debe convertirse en un tipo de datos que admite manipulaciones más rápidas. En Python, hay diccionarios que permiten al usuario almacenar datos en forma de pares o valores de pares de teclas. Estos son muy similares a JSON, y en esta publicación, aprenderá a convertir una cuerda de Python en un diccionario.

El contenido de esta guía es el siguiente:

  • Método 1: Uso del JSON.Método de carga () para convertir la cadena en dict
  • Método 2: usando el AST.método literal_eval () para convertir la cadena en dict
  • Método 3: Uso de Strip () y Split () en Expresiones del Generador

Comencemos con el primer método de inmediato.

Método 1: Uso del JSON.Método de carga () para convertir la cadena en dict

El método Loads () se usa para "cargar" una cadena JSON y convertirla en un JSON, o en Python, un diccionario. Sin embargo, para que este método funcione, la cadena debe estar en el formato específico en el que cada "clave" está encapsulada por comillas, separadas por un colon del "valor". Y cada par está separado por una coma.

Para demostrar el funcionamiento del método de carga () para la conversión de cadena a diccionario, use el siguiente fragmento de código:

importar json
stringvar = '"nombre": "John Doe", "Age": "20", "Ocupación": "Doctor"'
ResultVar = JSON.Cargas (StringVar)
imprimir ("String inicial:", StringVar)
Imprimir ("Después de la conversión:", resultVar)
Imprimir ("Escriba después de la conversión:", escriba (resultVar))

En este fragmento de código:

  • El módulo "JSON" se importa para que el usuario pueda utilizar el método de carga ().
  • Después de eso, se inicializa la cadena "StringVar"
  • El método Loads () se aplica en StringVar y el resultado se almacena en la variable "ResultVar"
  • Por último, la cadena original, el resultado y el tipo de resultados se imprimen en la terminal.

Cuando se ejecuta este código, produce el siguiente resultado en el terminal:

En esta salida, puede notar fácilmente que la cadena se ha convertido con éxito a un tipo de datos DICT en Python.

Método 2: usando el AST.método literal_eval () para convertir la cadena en dict

El método literal_eval () del paquete "AST" también se puede usar para hacer exactamente el mismo trabajo que el método Loads () desde el paquete "JSON". Para usar este método, eche un vistazo al siguiente código:

importar AST
stringVar = '"Nombre": "John Doe", "Age": 20, "Ocupación": "Doctor", "Salario": 40000'
resultVar = AST.literal_eval (stringvar)
imprimir ("String inicial:", StringVar)
Imprimir ("Después de la conversión:", resultVar)
Imprimir ("Escriba después de la conversión:", escriba (resultVar))

Cuando se ejecuta este código, producirá el siguiente resultado en el terminal:

La salida verifica que la cadena se ha convertido con éxito en un dict de Python.

Método 3: Uso del método eval () para convertir la cadena en dict

Otro método muy similar es el método eval () que se utiliza para evaluar si una cadena está formateada correctamente o no y devuelve el diccionario convertido a la persona que llama. Para ver su funcionamiento, tome el siguiente ejemplo de código:

stringVar = '"Nombre": "John Doe", "Age": 20, "Ocupación": "Doctor", "Salario": 40000'
resultVar = eval (stringvar)
imprimir ("Usando el método eval ()")
imprimir ("String inicial:", StringVar)
Imprimir ("Después de la conversión:", resultVar)
Imprimir ("Escriba después de la conversión:", escriba (resultVar))

Cuando se ejecuta este código, producirá la siguiente salida en el terminal:

Has convertido con éxito una cadena de pitón en un dict de pitón usando el método eval ().

Método 4: Uso de Strip () y Split () en Expresiones del Generador

Supongamos que la cadena no está en el formato de cadena JSON, y aún así desea convertirla en un dict de Python. Para este propósito, tendría que utilizar varios métodos de manipulación de cadenas como Strip () y Split (). Por ejemplo, suponga que la cadena contiene pares de valor clave, en los que la clave y el valor están separados por un guión "-", Y cada par está separado por una coma. Por ejemplo, esta es la cadena a convertir:

stringVar = "Nombre - John Doe, edad - 20, Ocupación - Doctor, Martial_status - Single"

Para hacer esto, el usuario puede utilizar la expresión del generador, echar un vistazo al siguiente código:

stringVar = "Nombre - John Doe, edad - 20, Ocupación - Doctor, Martial_status - Single"
resultVar = dict ((a.Strip (), B.banda())
para a, b en (sección.dividir("-")
Para la sección en StringVar.dividir(",")))
imprimir ("String inicial:", StringVar)
Imprimir ("AfterConversion:", resultVar)
Imprimir ("Escriba después de la conversión:", escriba (resultVar))

Para comprender este código, comience desde el bucle más interno:

  • La cadena se corta en cada ocurrencia de una coma para obtener pares de llave individuales
  • Para cada subcadena de pares de teclas, la cadena se divide en la ocurrencia de un guión "-"Y las dos secciones se asignan a las variables" A "y" B ". La "A" contiene la parte clave, mientras que la "B" contiene la parte del valor.
  • El método Strip () se aplica en ambas variables "A" y "B" para eliminar los espacios en blanco antes o después de la cadena.
  • Después de eso, ambas variables se pasan al método dict () para crear una nueva variable de diccionario, "resultVar"
  • Por último, imprima la cadena original y la variable convertida ResultVar y su tipo en el terminal usando el método de impresión ()

Cuando se ejecuta este código, produce la siguiente salida:

Se puede observar fácilmente que la cadena se ha convertido en un dict de pitón.

Conclusión

Para convertir una cadena en un "dict" de Python, el usuario puede usar el método Loads () desde el paquete "JSON" o el método literal_eval () del paquete "AST". Sin embargo, para usar estos dos métodos, la cadena debe ser una cadena JSON. Aparte de esto, si la cadena está en un formato diferente, entonces el usuario tendrá que usar una combinación de varios métodos de manipulación de cadenas para crear una expresión de generador de trabajo.