Beim Erstellen eines Prozesses zum lokalen Speichern von Wörterbuchtypdaten in Python Ich fragte mich: "Was? Wie rettest du es?" Da ich zum ersten Mal von der Existenz des "Pickle" -Moduls erfahren habe, werde ich es als Lernnotiz hinterlassen. (Endlich in JSON gespeichert)
Mit dem Pickle-Modul können Sie ein Objekt im Binärformat in einer Datei speichern.
Das Pickle-Modul implementiert ein Binärprotokoll zum Serialisieren von Python-Objekten und zum Wiederherstellen serialisierter Objekte. Offizielles Python-Dokument: pickle
"Gurke" bedeutet übrigens "Gurke". Kommt es vom Speichern von Objekten, die schnell verschwinden? Was für ein cooler
Sie können das zu speichernde Objekt speichern, indem Sie die Datei im binären Schreibmodus mit pickle.dump ()
öffnen.
createPickle.py
import pickle
d = {"name":"ndj", "age":25, "hobby": "YouTube"}
with open("sample.pickle", mode="wb") as f:
pickle.dump(d, f)
Sie können es laden, indem Sie die Datei im binären Lesemodus und "pickle.load" öffnen.
loadPickle.py
import pickle
d = {}
with open("sample.pickle", mode="rb") as f:
d = pickle.load(f)
Übrigens können andere Objekte als der Wörterbuchtyp auf die gleiche Weise gespeichert werden.
otherPickle.py
import pickle
def dumpPickle(fileName, obj):
with open(fileName, mode="wb") as f:
pickle.dump(obj, f)
dumpPickle("lst.pickle", [1,2,3,4,5])
dumpPickle("str.pickle", "helooooooo!!")
dumpPickle("int.pickle", 11114)
Gleiches gilt für das Lesen.
otherPickle.py
import pickle
def loadPickle(fileName):
with open(fileName, mode="rb") as f:
return pickle.load(f)
lst = loadPickle("lst.pickle")
_str = loadPickle("str.pickle")
_int = loadPickle("int.pickle")
Oben auf der Pickle-Seite in der offiziellen Python-Dokumentation befindet sich eine Warnung.
Warnung Das Pickle-Modul ist nicht sicher. Entpacken Sie nur Daten, denen Sie vertrauen. It is possible to construct malicious pickle data which will execute arbitrary code during unpickling. Offizielles Python-Dokument: pickle
Ich bin nicht sehr sicher, aber wenn der Inhalt der Datei Code ist, der beim Konvertieren des Inhalts der Datei in Objekte ausgeführt wird, wird er ausgeführt. .. Es scheint, dass Sie bei der Verwendung vorsichtig sein müssen, da es ein Problem sein wird, wenn unbeabsichtigter Code ausgeführt wird.
Recommended Posts