Antworten:
JSON ist ein Format, das Objekte in einer Zeichenfolge codiert. Serialisierung bedeutet, ein Objekt in diese Zeichenfolge zu konvertieren , und Deserialisierung ist die inverse Operation (Zeichenfolge konvertieren -> Objekt). .
Wenn Daten übertragen oder in einer Datei gespeichert werden, müssen die Daten Byte-Zeichenfolgen sein, komplexe Objekte liegen jedoch selten in diesem Format vor. Durch die Serialisierung können diese komplexen Objekte für eine solche Verwendung in Byte-Zeichenfolgen konvertiert werden. Nachdem die Byte-Strings übertragen wurden, muss der Empfänger das ursprüngliche Objekt aus dem Byte-String wiederherstellen. Dies ist als Deserialisierung bekannt.
Angenommen, Sie haben ein Objekt:
{foo: [1, 4, 7, 10], bar: "baz"}
Durch die Serialisierung in JSON wird es in eine Zeichenfolge konvertiert:
'{"foo":[1,4,7,10],"bar":"baz"}'
die gespeichert oder per Kabel an einen beliebigen Ort gesendet werden können. Der Empfänger kann diese Zeichenfolge dann deserialisieren, um das ursprüngliche Objekt zurückzugewinnen. {foo: [1, 4, 7, 10], bar: "baz"}
.
"{foo: [1, 4, 7, 10], bar: "baz"}"
Im Zusammenhang mit der Datenspeicherung ist Serialisierung (oder Serialisierung) der Prozess der Übersetzung von Datenstrukturen oder Objektzuständen in ein Format, das gespeichert (z. B. in einer Datei oder einem Speicherpuffer) oder übertragen (z. B. über eine Netzwerkverbindung) werden kann Link) und später rekonstruiert. [...]
Die entgegengesetzte Operation, bei der eine Datenstruktur aus einer Reihe von Bytes extrahiert wird, ist die Deserialisierung . Aus Wikipedia
In Python führt "Serialisierung" nichts anderes aus, als nur die angegebene Datenstruktur (z. B. a dict
) in ihren gültigen JSON-Anhänger (Objekt) zu konvertieren .
True
werden in JSONs konvertiert true
und das Wörterbuch selbst wird dann in Anführungszeichen gesetzt.True
/ False
,true
/false
json
ist die Standardmethode für die Serialisierung:Codebeispiel:
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
# }
# }
Quelle: realpython.com
Erläuterung von Serialize und Deserialize mit Python
In Python wird das Pickle-Modul für die Serialisierung verwendet. Daher wird der Serialisierungsprozess in Python als Beizen bezeichnet . Dieses Modul ist in der Python-Standardbibliothek verfügbar .
Serialisierung mit Gurke
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()
Die PICKLE-Datei (kann von einem Texteditor wie dem Editor geöffnet werden) enthält Folgendes (serialisierte Daten):
€} q (KX 6qKX 2qKX fqu.
Deserialisierung mit Gurke
import pickle
pickle_in=open("dict.pickle","rb")
get_deserialized_data_back=pickle.load(pickle_in)
print(get_deserialized_data_back)
Ausgabe:
{1: '6', 2: '2', 3: 'f'}