Respuestas:
JSON es un formato que codifica objetos en una cadena. Serialización significa convertir un objeto en esa cadena , y la deserialización es su operación inversa (convertir cadena -> objeto) .
Al transmitir datos o almacenarlos en un archivo, se requiere que los datos sean cadenas de bytes, pero los objetos complejos rara vez tienen este formato. La serialización puede convertir estos objetos complejos en cadenas de bytes para tal uso. Después de que se transmiten las cadenas de bytes, el receptor tendrá que recuperar el objeto original de la cadena de bytes. Esto se conoce como deserialización.
Digamos que tienes un objeto:
{foo: [1, 4, 7, 10], bar: "baz"}
serializar en JSON lo convertirá en una cadena:
'{"foo":[1,4,7,10],"bar":"baz"}'
que se puede almacenar o enviar por cable a cualquier lugar. El receptor puede deserializar esta cadena para recuperar el objeto original. {foo: [1, 4, 7, 10], bar: "baz"}
.
"{foo: [1, 4, 7, 10], bar: "baz"}"
En el contexto del almacenamiento de datos, la serialización (o serialización) es el proceso de traducir las estructuras de datos o el estado del objeto a un formato que pueda almacenarse (por ejemplo, en un archivo o memoria intermedia) o transmitirse (por ejemplo, a través de una conexión de red enlace) y reconstruido más tarde. [...]
La operación opuesta, extraer una estructura de datos de una serie de bytes, es la deserialización . De Wikipedia
En Python, la "serialización" no hace nada más que simplemente convertir la estructura de datos dada (por ejemplo, a dict
) en su colgante JSON (objeto) válido.
True
se convertirá en JSON true
y el diccionario en sí se encapsulará entre comillas.True
/ False
,true
/false
json
es la forma estándar de hacer la serialización:Ejemplo de código:
data = {
"president": {
"name": "Zaphod Beeblebrox",
"species": "Betelgeusian",
"male": True,
}
}
import json
json_data = json.dumps(data, indent=2) # serialize
restored_data = json.loads(json_data) # deserialize
# serialized json_data now looks like:
# {
# "president": {
# "name": "Zaphod Beeblebrox",
# "species": "Betelgeusian",
# "male": true
# }
# }
Fuente: realpython.com
Explicación de Serializar y Deserializar usando Python
En python, el módulo pickle se usa para la serialización. Entonces, el proceso de serialización se llama decapado en Python. Este módulo está disponible en la biblioteca estándar de Python .
Serialización con pickle
import pickle
#the object to serialize
example_dic={1:"6",2:"2",3:"f"}
#where the bytes after serializing end up at, wb stands for write byte
pickle_out=open("dict.pickle","wb")
#Time to dump
pickle.dump(example_dic,pickle_out)
#whatever you open, you must close
pickle_out.close()
El archivo PICKLE (puede abrirse con un editor de texto como el bloc de notas) contiene esto (datos serializados):
€} q (KX 6qKX 2qKX fqu.
Deserialización con pickle
import pickle
pickle_in=open("dict.pickle","rb")
get_deserialized_data_back=pickle.load(pickle_in)
print(get_deserialized_data_back)
Salida:
{1: '6', 2: '2', 3: 'f'}