Pickle – это модуль Python, который предоставляет возможность сериализовать и десериализовать объекты Python. Сериализация – это процесс преобразования объекта в поток байтов, который затем может быть сохранен в файл или передан через сеть. Десериализация – это обратный процесс, при котором поток байтов преобразуется обратно в объект. В этой статье мы рассмотрим основы использования модуля Pickle для сериализации и десериализации объектов Python.
Освойте Python на курсе от Skypro. Вас ждут 400 часов обучения и практики (достаточно десяти часов в неделю), подготовка проектов для портфолио, индивидуальная проверка домашних заданий и помощь опытных наставников. Получится, даже если у вас нет опыта в IT.
Импорт модуля Pickle
Прежде всего, вам нужно импортировать модуль pickle
. Для этого просто добавьте следующую строку в начале своего кода:
import pickle
Сериализация объектов с использованием Pickle
Чтобы сериализовать объект, вы можете использовать функцию pickle.dumps()
, которая принимает объект в качестве аргумента и возвращает поток байтов. Вот пример:
import pickle data = {"key": "value"} serialized_data = pickle.dumps(data) print(serialized_data)
В этом примере мы сериализуем словарь data
и выводим полученный поток байтов.
😉 Если вы хотите сохранить сериализованные данные в файл, вы можете использовать функцию pickle.dump()
вместо pickle.dumps()
. Ниже приведен пример:
import pickle data = {"key": "value"} with open("data.pickle", "wb") as file: pickle.dump(data, file)
В этом случае мы открываем файл data.pickle
для записи в двоичном режиме и сохраняем сериализованные данные с помощью pickle.dump()
.
Изучайте Python на онлайн-курсе от Skypro «Python-разработчик». Программа рассчитана на новичков без опыта программирования и технического образования. Курс проходит в формате записанных коротких видеолекций. Будет много проверочных заданий и мастер-классов. В конце каждой недели — живая встреча с экспертами в разработке для ответов на вопросы и разбора домашек.
Десериализация объектов с использованием Pickle
Для десериализации объекта из потока байтов используйте функцию pickle.loads()
. Вот пример:
import pickle serialized_data = b'\x80\x04\x95\x1b\x00\x00\x00\x00\x00\x00\x00}\x94\x8c\x03key\x94\x8c\x05value\x94s.' deserialized_data = pickle.loads(serialized_data) print(deserialized_data)
В этом примере мы десериализуем поток байтов serialized_data
и выводим полученный объект.
😉 Если вы хотите загрузить объект из файла, используйте функцию pickle.load()
. Ниже приведен пример:
import pickle with open("data.pickle", "rb") as file: deserialized_data = pickle.load(file) print(deserialized_data)
Здесь мы открываем файл data.pickle
для чтения в двоичном режиме и загружаем объект с помощью pickle.load()
.
Теперь вы знаете основы использования модуля Pickle для сериализации и десериализации объектов Python. Не забывайте, что Pickle не подходит для обработки небезопасных данных, так как десериализация может выполнять произвольный код. Используйте Pickle только для работы с надежными данными.
На курсе Skypro «Python-разработчик» освоите основные инструменты программирования, получите опыт на реальных проектах и сможете стартовать в профессии уверенным новичком. Преподаватели — практикующие программисты с большим опытом, а в центре карьеры помогут составить цепляющее резюме и подготовиться к собеседованию.
Спасибо за чтение! Надеемся, что эта статья помогла вам разобраться с модулем Pickle в Python. Удачи вам в изучении новых тем!
Добавить комментарий