Réponses:
JSON est un format qui encode les objets dans une chaîne. La sérialisation signifie convertir un objet en cette chaîne , et la désérialisation est son opération inverse (convertir la chaîne -> objet) .
Lors de la transmission de données ou de leur stockage dans un fichier, les données doivent être des chaînes d'octets, mais les objets complexes sont rarement dans ce format. La sérialisation peut convertir ces objets complexes en chaînes d'octets pour une telle utilisation. Une fois les chaînes d'octets transmises, le récepteur devra récupérer l'objet d'origine à partir de la chaîne d'octets. C'est ce qu'on appelle la désérialisation.
Dites, vous avez un objet:
{foo: [1, 4, 7, 10], bar: "baz"}
la sérialisation en JSON le convertira en une chaîne:
'{"foo":[1,4,7,10],"bar":"baz"}'
qui peut être stocké ou envoyé par fil n'importe où. Le récepteur peut alors désérialiser cette chaîne pour récupérer l'objet d'origine. {foo: [1, 4, 7, 10], bar: "baz"}
.
"{foo: [1, 4, 7, 10], bar: "baz"}"
Dans le contexte du stockage de données, la sérialisation (ou sérialisation) est le processus de traduction des structures de données ou de l'état d'objet dans un format qui peut être stocké (par exemple, dans un fichier ou une mémoire tampon) ou transmis (par exemple, via une connexion réseau. link) et reconstruit plus tard. [...]
L'opération inverse, extraire une structure de données d'une série d'octets, est la désérialisation . De Wikipedia
En Python, la "sérialisation" ne fait rien d'autre que de simplement convertir la structure de données donnée (par exemple a dict
) en son pendant (objet) JSON valide.
True
seront convertis en JSON true
et le dictionnaire lui-même sera ensuite encapsulé entre guillemets.True
/ False
,true
/false
json
est le moyen standard de faire la sérialisation:Exemple de code:
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
# }
# }
Source: realpython.com
Explication de la sérialisation et de la désérialisation à l'aide de Python
En python, le module pickle est utilisé pour la sérialisation. Ainsi, le processus de sérialisation est appelé pickling en Python. Ce module est disponible dans la bibliothèque standard Python .
Sérialisation à l'aide de 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()
Le fichier PICKLE (peut être ouvert par un éditeur de texte comme le bloc-notes) contient ceci (données sérialisées):
€} q (KX 6qKX 2qKX fqu.
Désérialisation à l'aide de pickle
import pickle
pickle_in=open("dict.pickle","rb")
get_deserialized_data_back=pickle.load(pickle_in)
print(get_deserialized_data_back)
Production:
{1: '6', 2: '2', 3: 'f'}