Pickle-Beispiele

Python-pickle-Modul

In diesem Beispiel wollen wir mit dem Python pickle-Modul das foldende Dict im Pickle-Format speichern:

[1]:
pyviz = {
    "Titel": "PyViz Tutorial",
    "Sprache": "de",
    "Autor*innen": "Veit Schiele",
    "Lizenz": "BSD-3-Clause",
    "Veröffentlichungsdatum": "2020-04-13",
}
[2]:
import pickle

from pathlib import Path
[3]:
with Path.open("pyviz.pkl", "wb") as f:
    pickle.dump(pyviz, f, pickle.HIGHEST_PROTOCOL)

Nun lesen wir die Pickle-Datei wieder ein:

[4]:
with Path.open("pyviz.pkl", "rb") as f:
    pyviz = pickle.load(f)

print(pyviz)
{'Titel': 'PyViz Tutorial', 'Sprache': 'de', 'Autor*innen': 'Veit Schiele', 'Lizenz': 'BSD-3-Clause', 'Veröffentlichungsdatum': '2020-04-13'}

Auf diese Weise können wir Python-Objekte einfach persistent speichern.

Warnung

pickle kann nur als kurzfristiges Speicherformat empfohlen werden. Das Problem ist, dass nicht garantiert wird, dass das Format im Laufe der Zeit stabil bleibt; ein heute gepickeltes Objekt lässt sich möglicherweise mit einer späteren Version der Bibliothek nicht mehr entpickeln.

Warnung

pickle und Module, die darauf aufbauen, können bei der Deserialisierung nicht vertrauenswürdiger Daten Sicherheitsrisiken bergen.

pandas

Alle Pandas-Objekte haben eine to_pickle-Methode, die Daten im Pickle-Format auf die Festplatte schreibt:

[5]:
import pandas as pd


books = pd.read_pickle("books.pkl")

books
[5]:
Titel Sprache Autor*innen Lizenz Veröffentlichungsdatum
0 Python basics en Veit Schiele BSD-3-Clause 2021-10-28
1 Jupyter Tutorial en Veit Schiele BSD-3-Clause 2019-06-27
2 Jupyter Tutorial de Veit Schiele BSD-3-Clause 2020-10-26
3 PyViz Tutorial en Veit Schiele BSD-3-Clause 2020-04-13

pandas-Objekte haben alle eine to_pickle-Methode, die die Daten im Pickle-Format auf die Festplatte schreibt:

[6]:
books.to_pickle("books.pkl")