Heim  >  Artikel  >  Backend-Entwicklung  >  Wie serialisiere und deserialisiere ich mehrere Objekte mit Pickle in Python?

Wie serialisiere und deserialisiere ich mehrere Objekte mit Pickle in Python?

Mary-Kate Olsen
Mary-Kate OlsenOriginal
2024-11-03 19:10:29159Durchsuche

How to Serialize and Deserialize Multiple Objects with Pickle in Python?

Serialisierung und Deserialisierung mehrerer Objekte mit Pickle

In Python bietet das Pickle-Modul eine praktische Möglichkeit, Objekte zu serialisieren und zu deserialisieren, aber wie geht das? Sie verarbeiten mehrere Objekte?

Um mehrere Objekte in einer Pickle-Datei zu speichern, können Sie eine Liste oder ein Tupel verwenden, um sie zusammenzufassen. Zum Beispiel:

<code class="python">my_objects = [obj1, obj2, obj3]
with open('objects.pkl', 'wb') as f:
    pickle.dump(my_objects, f)</code>

Um die Objekte zu laden, gehen Sie einfach wie folgt vor:

<code class="python">with open('objects.pkl', 'rb') as f:
    my_objects = pickle.load(f)</code>

Das Pickle-Modul unterstützt die Speicherung der Anzahl der eingelegten Objekte und ermöglicht so das individuelle Laden dieser Objekte. Bei größeren Datensätzen ist es jedoch möglicherweise nicht optimal, alles in den Speicher zu laden.

Eine Alternative besteht darin, einen Generator zu verwenden, um die Objekte einzeln zu laden:

<code class="python">def loadall(filename):
    with open(filename, "rb") as f:
        try:
            while True:
                yield pickle.load(f)
        except EOFError:
            pass</code>

Nur ​​auf diese Weise Das nächste Objekt wird bei Bedarf geladen, wodurch Speicherplatz gespart wird.

Das obige ist der detaillierte Inhalt vonWie serialisiere und deserialisiere ich mehrere Objekte mit Pickle in Python?. 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