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")