Pickle Module : Pickling(Serializing) And Unpickling(De-serializing) Of Python Objects


  • Python objects can be serialized into binary form and deserialized back to Python objects using the methods and classes available from the Python module pickle.
  • The process of converting a Python object into binary form is called Pickling.
  • The process of converting the binary stream back to a Python object is called Unpickling.
  • Pickled objects can be stored in a disk file and unpickled back as objects.
  • The Python module pickle provides the methods, classes, constants and exceptions to be used during the pickling process.
  • While the dump() variants pickle the Python object hierarchies the load() variants unpickle the bytes back into Python object hierarchies.

Pickling and unpickling in Python


In the Python example code below, the method pickle.dump() is used to convert a Python object type Part into a byte stream. The pickle.load() is used to convert the byte stream back to a Python object.

import pickle


# Class definition of a part

class Part:

    number = 0

    name   = ""


    def __init__(self, number, name):

        self.number  = number

        self.name    = name


    def identify(self):

        print("Part Number: %d"%(self.number))

        print("Part Name: %s"%(self.name))


# Instantiate a part

part1=Part(111, "Spindle");


# Create a file to store the pickled object

objectRepository = open("ObjectFile.picl", "wb");


# Pickle/serialize the python object and store the bytes into a binary file 

pickle.dump(part1, objectRepository, protocol=pickle.HIGHEST_PROTOCOL)



# Unpickle/de-serialize the python object and print the attributes of the object

objectRepository    = open("ObjectFile.picl", "rb",);

reconstructedObject = pickle.load(objectRepository)


# Print object attributes




Part Number: 111

Part Name: Spindle



Copyright 2022 © pythontic.com