10-3. Serializing Objects – The pickle Module

The pickle module in Python is used for serializing and deserializing Python objects. Serialization, also known as pickling, is the process of converting a Python object into a byte stream, which can be stored in a file or transmitted over a network. Deserialization, or unpickling, is the reverse process where the byte stream is converted back into a Python object.

Steps to Use the pickle Module for Serializing Objects

  • Import the pickle Module: You need to import the pickle module to use its functions.
import pickle

 

  • Open a File for Binary Writing: You need to open a file in binary mode for writing (wb). This file will store the serialized byte stream.
with open('data.pkl', 'wb') as file:
# Perform pickling operations here

 

  • Pickle the Object and Write it to the File: Use the pickle.dump method to serialize the object and write it to the specified file.
with open('data.pkl', 'wb') as file:
    pickle.dump(my_object, file)

 

Here, my_object can be any Python object, such as a dictionary or a set.

  • Close the File: If you are using the with statement, the file will be automatically closed. Otherwise, you should explicitly close the file.
file.close()

Example: Serializing a Dictionary and a Set

Here's a complete example that demonstrates how to pickle a dictionary and a set:

 

Steps to Deserialize the Objects

  • Open the File for Binary Reading: Open the file in binary mode for reading (rb).
with open('data.pkl', 'rb') as file:
# Perform unpickling operations here
  • Unpickle the Objects: Use the pickle.load method to deserialize the objects from the file.
with open('data.pkl', 'rb') as file:
    loaded_dict = pickle.load(file)
    loaded_set = pickle.load(file)

 

Example: Deserializing the Dictionary and Set

This example code shows how to unpickle a dictionary and a set:

 

Putting it all together

Output:

{'name': 'Alice', 'age': 30, 'city': 'New York'}
{'banana', 'cherry', 'apple'}