In this shot, we will discuss pickling and unpickling in Python.
Pickle
is a module in Python that is primarily used to serialize and de-serialize a Python object structure. Both pickling and unpickling become essential when we have to transfer Python objects from one system to another.
Pickling is a process by which the object structure in Python is serialized. A Python object is converted into a byte stream when it undergoes pickling.
Unpickling is a process by which original Python objects are retrieved from the stored string representation i.e., from the pickle file. It converts the byte stream into a Python object.
To understand this better let’s look at the code snippet below.
import picklemy_list = {15, 'Python', 'Hello World'}# Picklingwith open("data.pickle","wb") as file_handle:pickle.dump(my_list, file_handle, pickle.HIGHEST_PROTOCOL)# Unpicklingwith open("data.pickle","rb") as file_handle:retrieved_data = pickle.load(file_handle)print(retrieved_data)
In line 1, we import the pickle
module in Python.
In line 2, a demo Python list is created which will be pickled.
In lines 4 and 5, pickling is done. A .pickle
file is created and the Python object (here demo Python list) is dumped.
In lines 7 to 9, we have unpickled the pickled file which thereby gives the demo Python list that was created as an output.
Note :
- The
dump()
function is used to serialize an object hierarchy.pickle.HIGHEST_PROTOCOL
is an integer value that represents the highest available protocol version.- The
load()
function is used to de-serialize a data stream.
In this way, we can use pickling and unpickling in Python. It is a tool of immense importance when we want to preserve our work for later use, especially due to the fact that it can serialize almost any Python object without any boilerplate.