En el concepto anterior trabajamos con la deserialización de recursos JSON localizados en un servidor y su posterior transformación a listas con elementos de tipo diccionario.
Como vemos son los dos caminos posibles para transformar una estructura de datos en otra estructura.
Definir un string en Python con la estructura interna de un archivo JSON.
Deserializar el string y convertirlo a una lista de Python. Luego volver a serializar la lista a un string.
import json cadena1=""" [ { "codigo":"1", "descripcion":"papas", "precio":"12" }, { "codigo":"2", "descripcion":"naranjas", "precio":"25" } ] """ print(type(cadena1)) print(cadena1) print("_"*80) lista=json.loads(cadena1) print(type(lista)) print(lista) print("_"*80) cadena2=json.dumps(lista) print(type(cadena2)) print(cadena2)
El resultado de ejecutar el siguente script en Python es:
Definimos e inicializamos una variable string:
cadena1=""" [ { "codigo":"1", "descripcion":"papas", "precio":"12" }, { "codigo":"2", "descripcion":"naranjas", "precio":"25" } ] """
Mediante la función 'type' podemos confirmar que la variable 'cadena1' es de tipo 'str':
print(type(cadena1))
Ahora mediante la función 'loads' del módulo 'json' que vimos en el concepto anterior deserializamos el string:
lista=json.loads(cadena1)
Si imprimimos el tipo de la variable 'lista' podemos verificar que se trata de tipo 'list':
print(type(lista))
Podemos ahora procesar la lista 'lista1', en nuestro caso solo la imprimimos en forma completa:
print(lista)
Para convertir una lista a tipo string debemos utilizar la función 'dumps' del módulo 'json':
cadena2=json.dumps(lista)
Podemos comprobar que la variable 'cadena2' es de tipo string mediante la función 'type':
print(type(cadena2)) print(cadena2)
Los tipos de datos en JSON son muy similares a los tipos de datos en Python, pero no son
exactamente iguales.
La conversión en los procesos de serializar y deserializar son:
Python | JSON |
---|---|
dic | object |
list o tupla | array |
str | string |
int y float | number |
True | true |
False | false |
None | null |