2 Использование Pickle для сериализации и десериализации объекта

pickle модуль реализует алгоритм преобразования произвольного объекта Python в последовательность байт. Этот процесс также называется сериализации объекта. Поток байтов, представляющий объект, затем может быть передан или сохранен, а затем реконструирован для создания нового объекта с такими же характеристиками.

Для простейшего кода, мы используем dump() и load() функцию.

Для сериализации объекта

 import pickle

# An arbitrary collection of objects supported by pickle.
data = {
    'a': [1, 2.0, 3, 4+6j],
    'b': ("character string", b"byte string"),
    'c': {None, True, False}
}

with open('data.pickle', 'wb') as f:
    # Pickle the 'data' dictionary using the highest protocol available.
    pickle.dump(data, f, pickle.HIGHEST_PROTOCOL)

 

Для десериализации объекта

 import pickle

with open('data.pickle', 'rb') as f:
    # The protocol version used is detected automatically, so we do not
    # have to specify it.
    data = pickle.load(f)

 

Использование объектов pickle и byte

Кроме того , можно сериализовать в и десериализации из объектов байтов, используя dumps и loads функции, которые эквивалентны dump и load .

 serialized_data = pickle.dumps(data, pickle.HIGHEST_PROTOCOL)
# type(serialized_data) is bytes

deserialized_data = pickle.loads(serialized_data)
# deserialized_data == data