Heim >Backend-Entwicklung >Python-Tutorial >Wie serialisiert und deserialisiert das Pickle-Modul von Python Objekte?

Wie serialisiert und deserialisiert das Pickle-Modul von Python Objekte?

Patricia Arquette
Patricia ArquetteOriginal
2024-11-29 01:05:121016Durchsuche

How Does Python's Pickle Module Serialize and Deserialize Objects?

Pickle für die Objektserialisierung verstehen: Python-Objekte beibehalten

Pickle in Python bietet einen praktischen Mechanismus zum Serialisieren von Python-Objekten in ein Binärformat zur Speicherung oder Übertragung. Mit pickle können Sie komplexe Datenstrukturen, einschließlich Wörterbüchern, nahtlos in Dateien oder byteähnlichen Objekten speichern.

Serialisierung eines Wörterbuchs

Um eine neue Datei zu schreiben und Legen Sie mit pickle ein Wörterbuch darin ab und führen Sie die folgenden Schritte aus:

import pickle

a = {'hello': 'world'}

with open('filename.pickle', 'wb') as handle:
    pickle.dump(a, handle, protocol=pickle.HIGHEST_PROTOCOL)

Die Methode pickle.dump() serialisiert das Wörterbuch „a“ in das Binärdatei „Dateiname.pickle“. Das Protokollargument gibt den Grad der Serialisierungskompatibilität an.

Deserialisierung

So rufen Sie das serialisierte Wörterbuch aus der Datei ab:

with open('filename.pickle', 'rb') as handle:
    b = pickle.load(handle)

Die Gurke. Die Methode „load()“ liest die Binärdaten und rekonstruiert das ursprüngliche Wörterbuch 'b'.

Vielseitigkeit jenseits von Wörterbüchern

Pickle ist nicht auf die Serialisierung von Wörterbüchern beschränkt. Es kann verschiedene Python-Objekte verarbeiten, einschließlich Instanzen benutzerdefinierter Klassen und komplexer Datenstrukturen. Zum Beispiel:

import datetime
today = datetime.datetime.now()
a = [{'hello': 'world'}, 1, 2.3333, 4, True, "x",
     ("y", [[["z"], "y"], "x"]), {'today', today}]

Einschränkungen

Während Einlegen vielseitig ist, können einige Gegenstände nicht eingelegt werden. Dazu gehören Objekte, die auf Systemressourcen angewiesen sind, wie z. B. offene Dateihandles.

Das obige ist der detaillierte Inhalt vonWie serialisiert und deserialisiert das Pickle-Modul von Python Objekte?. 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