Risposte:
JSON è un formato che codifica gli oggetti in una stringa. La serializzazione significa convertire un oggetto in quella stringa e la deserializzazione è la sua operazione inversa (converti stringa -> oggetto) .
Quando si trasmettono dati o li si archivia in un file, i dati devono essere stringhe di byte, ma raramente gli oggetti complessi sono in questo formato. La serializzazione può convertire questi oggetti complessi in stringhe di byte per tale uso. Dopo la trasmissione delle stringhe di byte, il ricevitore dovrà recuperare l'oggetto originale dalla stringa di byte. Questo è noto come deserializzazione.
Dì, hai un oggetto:
{foo: [1, 4, 7, 10], bar: "baz"}
la serializzazione in JSON lo convertirà in una stringa:
'{"foo":[1,4,7,10],"bar":"baz"}'
che può essere memorizzato o inviato tramite filo ovunque. Il destinatario può quindi deserializzare questa stringa per recuperare l'oggetto originale. {foo: [1, 4, 7, 10], bar: "baz"}
.
"{foo: [1, 4, 7, 10], bar: "baz"}"
Nel contesto della memorizzazione dei dati, la serializzazione (o serializzazione) è il processo di traduzione delle strutture di dati o dello stato dell'oggetto in un formato che può essere archiviato (ad esempio, in un file o buffer di memoria) o trasmesso (ad esempio, attraverso una connessione di rete link) e ricostruito in seguito. [...]
L'operazione opposta, che estrae una struttura di dati da una serie di byte, è la deserializzazione . Da Wikipedia
In Python la "serializzazione" non fa altro che convertire la struttura di dati fornita (ad es. A dict
) nel suo pendente (oggetto) JSON valido.
True
verrà convertito in JSON true
e il dizionario stesso verrà quindi incapsulato tra virgolette.True
/ False
,true
/false
json
è il modo standard per eseguire la serializzazione:Esempio di codice:
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
# }
# }
Fonte: realpython.com
Spiegazione di Serialize e Deserialize usando Python
In python, il modulo pickle viene utilizzato per la serializzazione. Quindi, il processo di serializzazione si chiama decapaggio in Python. Questo modulo è disponibile nella libreria standard Python .
Serializzazione tramite 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()
Il file PICKLE (che può essere aperto da un editor di testo come Blocco note) contiene questo (dati serializzati):
€} q (KX 6qKX 2qKX fqu.
Deserializzazione usando pickle
import pickle
pickle_in=open("dict.pickle","rb")
get_deserialized_data_back=pickle.load(pickle_in)
print(get_deserialized_data_back)
Produzione:
{1: '6', 2: '2', 3: 'f'}