Heim >Backend-Entwicklung >Python-Tutorial >Detaillierte Einführung in die Serialisierung und Deserialisierung

Detaillierte Einführung in die Serialisierung und Deserialisierung

零下一度
零下一度Original
2017-07-19 16:45:201882Durchsuche

1 Das Konzept der Serialisierung und Deserialisierung

Der Prozess von Das Konvertieren eines Objekts in eine Folge von Bytes wird als Serialisierung des Objekts bezeichnet.
Der Vorgang des Wiederherstellens einer Bytesequenz in einem Objekt wird als Objektdeserialisierung bezeichnet.
Es gibt zwei Hauptverwendungszwecke für die Objektserialisierung:
1) Die Bytesequenz des Objekts dauerhaft auf der Festplatte speichern, normalerweise in einer Datei.
2) Die Bytesequenz des Objekts über die Netzwerkabschnittssequenz übertragen .

In vielen Anwendungen müssen bestimmte Objekte serialisiert werden, damit sie den Speicherplatz verlassen und zur Langzeitspeicherung auf der physischen Festplatte gespeichert werden können. Das häufigste ist beispielsweise das Sitzungsobjekt auf dem Webserver. Wenn 100.000 Benutzer gleichzeitig darauf zugreifen, sind möglicherweise 100.000 Sitzungsobjekte vorhanden, was möglicherweise zu viel für den Speicher ist, sodass der Webcontainer einige Sitzungen auf der Festplatte serialisiert Zuerst die Festplatte usw. Wenn Sie es verwenden möchten, stellen Sie das auf der Festplatte gespeicherte Objekt im Speicher wieder her.

Wenn zwei Prozesse remote kommunizieren, können sie einander verschiedene Arten von Daten senden. Unabhängig von der Art der Daten werden sie in Form einer Binärsequenz über das Netzwerk übertragen. Der Sender muss dieses Java-Objekt in eine Bytesequenz umwandeln, bevor es über das Netzwerk übertragen werden kann. Der Empfänger muss die Bytesequenz in ein Java-Objekt wiederherstellen.


 

Der Prozess der JSON-Serialisierung besteht darin, ihn in eine zu schreiben Datei, lassen Sie eine andere Programmiersprache den Anruf tätigen:

 import json

 info = {"alex":"sb", "test":"hart"🎜>

 mit open("file","w") wie f:   f.write(json.dumps(info))

Der obige Code verwendet JSON, um die Informationen des Informationswörterbuchs in eine Datei zu schreiben. Die in der Datei platzierten Informationen können nur im String-Format gespeichert werden Typ, darauf müssen Sie achten.

Der Prozess der JSON-Deserialisierung:

 JSON importieren

''' Die Deserialisierung beginnt mit dem Extrahieren der Informationen aus dump, um eine Interaktion zwischen verschiedenen Programmiersprachen '''

mit open( zu erreichen "file","r") as f: data = json.loads(f.read())

print(data)
print( type(data))   
print(data["alex"])
 

Der obige Code verwendet json Die in der gespeicherten Informationen Format wird wie folgt vorgelesen:

 {'test': 'hard', 'alex': 'sb'}
 
 sb
 Der obige Code realisiert das Lesen der String-Informationen In Bezug auf die Funktion des Wörterbuchs handelt es sich bei Serialisierung und Deserialisierung tatsächlich um Prozesse, bei denen das Originalformat in eine Zeichenfolge konvertiert und dann ausgelesen wird, damit eine Interaktion erreicht werden kann.

Wir können auch andere Methoden zur Serialisierung und Deserialisierung verwenden. Wir wissen, dass es eine Funktion eval() gibt, die String-Informationen wie folgt in den ursprünglichen Stil konvertieren kann:

info = [11,22,33,65,33]

mit offenem ("test.text","w") as f:
f.write(str(info)) #Verwenden Sie wirte ()Nur ​​Informationen im String-Format können in die Datei geschrieben werden, andere Arten von Informationen können nicht geschrieben werden

 mit open("test.text"," r") as f_obj:
data = f_obj.read()

data = eval(data)
print(type( data))
  Drucken (Daten)
 

Das Programm läuft wie folgt ab:

 
 [11, 22, 33, 65, 33]
 Im obigen Prozess verwenden wir die Funktion eval(), die mit Python geliefert wird Der Prozess der Serialisierung und Deserialisierung ist implementiert, aber da Serialisierung und Deserialisierung im selben Programm implementiert sind, ist es ungewiss, ob es eval() in anderen Programmen gibt, aber JSON unterstützt jetzt im Allgemeinen alle Programmiersprachen Informationsinteraktion zwischen verschiedenen Programmiersprachen realisieren.

Dump und Load implementieren ebenfalls die oben genannten Funktionen von Dumps und Loads, aber im Hinblick auf die verschiedenen Implementierungsmethoden unterscheidet sich die Syntax leicht wie folgt:

Dump-Serialisierung:

json importieren

info = {"alex":"sb", "test":"hard"}

mit open("file","w") as f:
  json .dump(info,f)

laden () Deserialisierung:

 json importieren

 '''Der Beginn der Deserialisierung besteht darin, die Informationen im Dump zu extrahieren, um unterschiedliche Programmierspracheninteraktionen zu erreichen'''

 mit open("file","r") as f:
data = json. Load(f)
  print(data)
  print(type(data))
  print(data["alex" ])
 

Das obige Programm implementiert die Funktionen Serialisierung und Deserialisierung, Dump (Informationen, Dateipfad), Laden (Dateipfad) und die Datei, aus der Informationen gelesen werden sollen.

Realisieren Sie den Datenaustausch zwischen verschiedenen Programmen.

Datenaustausch zwischen verschiedenen Programmen oder Konvertieren von Zeichenfolgeninformationen in ihre ursprüngliche Form

eval Die ()-Funktion; ist auch sehr leistungsfähig und kann Informationen in String-Form wie folgt in Originalinformationen umwandeln:

 >>> dic = "{'alex':'sb','try ':'workhard'}"
 >>> data = eval(dic)
 >>> data
 {'try ': 'workhard', 'alex': 'sb '🎜>

Das Programm speichert nur einmal, lädt einmal und kann nicht mehrmals sichern. Dumps sind in mehreren Dateien implementiert

Das obige ist der detaillierte Inhalt vonDetaillierte Einführung in die Serialisierung und Deserialisierung. Für weitere Informationen folgen Sie bitte anderen verwandten Artikeln auf der PHP chinesischen Website!

Stellungnahme:
Der Inhalt dieses Artikels wird freiwillig von Internetnutzern beigesteuert und das Urheberrecht liegt beim ursprünglichen Autor. Diese Website übernimmt keine entsprechende rechtliche Verantwortung. Wenn Sie Inhalte finden, bei denen der Verdacht eines Plagiats oder einer Rechtsverletzung besteht, wenden Sie sich bitte an admin@php.cn