Lors de la création d'un processus pour enregistrer les données de type dictionnaire localement en Python
Je me demandais: "Quoi? Comment l'enregistrez-vous?"
Depuis que j'ai appris l'existence du module pickle
pour la première fois, je le laisserai comme note d'apprentissage. (Enfin enregistré en JSON)
Le module pickle vous permet d'enregistrer un objet dans un fichier au format binaire.
Le module pickle implémente un protocole binaire pour la sérialisation des objets Python et la restauration des objets sérialisés. Document officiel Python: pickle
Soit dit en passant, «cornichon» signifie «cornichon». Cela vient-il de la sauvegarde d'objets qui disparaissent rapidement? Quel cool
Vous pouvez enregistrer l'objet que vous souhaitez enregistrer en ouvrant le fichier en mode d'écriture binaire avec pickle.dump ()
.
createPickle.py
import pickle
d = {"name":"ndj", "age":25, "hobby": "YouTube"}
with open("sample.pickle", mode="wb") as f:
pickle.dump(d, f)
Vous pouvez le charger en ouvrant le fichier en mode lecture binaire et pickle.load
.
loadPickle.py
import pickle
d = {}
with open("sample.pickle", mode="rb") as f:
d = pickle.load(f)
À propos, les objets autres que le type dictionnaire peuvent être enregistrés de la même manière.
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)
La même chose est vraie pour la lecture.
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")
Il y a un avertissement en haut de la page Pickle dans la documentation officielle de Python.
Attention Le module pickle n'est pas sécurisé, ne récupérez que les données fiables. It is possible to construct malicious pickle data which will execute arbitrary code during unpickling. Document officiel Python: pickle
Je ne suis pas très confiant, mais si le contenu du fichier est du code en cours de conversion du contenu du fichier en objets, il sera exécuté. .. Il semble que vous deviez faire attention à l'utilisation, car ce sera un problème si du code involontaire est exécuté.
Recommended Posts