Maison >développement back-end >Tutoriel Python >Comment le module Pickle de Python sérialise-t-il et désérialise-t-il les objets ?

Comment le module Pickle de Python sérialise-t-il et désérialise-t-il les objets ?

Patricia Arquette
Patricia Arquetteoriginal
2024-11-29 01:05:12959parcourir

How Does Python's Pickle Module Serialize and Deserialize Objects?

Comprendre Pickle pour la sérialisation d'objets : préserver les objets Python

Pickle en Python fournit un mécanisme pratique pour sérialiser les objets Python dans un format binaire pour le stockage ou transmission. Avec pickle, vous pouvez enregistrer en toute transparence des structures de données complexes, y compris des dictionnaires, dans des fichiers ou des objets de type octets.

Sérialisation d'un dictionnaire

Pour écrire un nouveau fichier et y vider un dictionnaire à l'aide de pickle, suivez ces étapes :

import pickle

a = {'hello': 'world'}

with open('filename.pickle', 'wb') as handle:
    pickle.dump(a, handle, protocol=pickle.HIGHEST_PROTOCOL)

La méthode pickle.dump() sérialise le dictionnaire 'a' dans le fichier binaire 'nomfichier.pickle'. L'argument protocole précise le niveau de compatibilité de sérialisation.

Désérialisation

Pour récupérer le dictionnaire sérialisé à partir du fichier :

with open('filename.pickle', 'rb') as handle:
    b = pickle.load(handle)

Le cornichon. La méthode load() lit les données binaires et reconstruit le dictionnaire original 'b'.

Polyvalence au-delà des dictionnaires

Pickle ne se limite pas à la sérialisation de dictionnaires. Il peut gérer divers objets Python, notamment des instances de classes personnalisées et des structures de données complexes. Par exemple :

import datetime
today = datetime.datetime.now()
a = [{'hello': 'world'}, 1, 2.3333, 4, True, "x",
     ("y", [[["z"], "y"], "x"]), {'today', today}]

Limitations

Bien que le cornichon soit polyvalent, certains objets ne peuvent pas être marinés. Cela inclut les objets qui dépendent des ressources système, tels que les descripteurs de fichiers ouverts.

Ce qui précède est le contenu détaillé de. pour plus d'informations, suivez d'autres articles connexes sur le site Web de PHP en chinois!

Déclaration:
Le contenu de cet article est volontairement contribué par les internautes et les droits d'auteur appartiennent à l'auteur original. Ce site n'assume aucune responsabilité légale correspondante. Si vous trouvez un contenu suspecté de plagiat ou de contrefaçon, veuillez contacter admin@php.cn