Особенности рассола:
- Он в основном предназначен для использования в скриптах Python.
- Он используется для сохранения объектов Python между процессами.
- Он отслеживает все сериализованные объекты, и объект, который был сериализован ранее, не будет снова сериализован.
- Он может сохранять и восстанавливать экземпляр класса прозрачно.
- Небезопасно использовать. Итак, не лучше извлекать данные из неизвестного источника.
dump () для сериализации:
Функция dump () используется для преобразования данных объекта в поток символов перед сохранением в файл. Эта функция может принимать три аргумента. Первые два аргумента являются обязательными, а последний аргумент - необязательным. Первый аргумент принимает объект данных, который необходимо сериализовать. Второй аргумент принимает объект обработчика файла того файла, в котором будут храниться упакованные данные. Последний аргумент принимает имя протокола.
Синтаксис:
дамп (объект_данных, объект_файла, [протокол])load () для десериализации:
Функция load () используется для преобразования данных символьного потока из файла в объект Python. Эта функция содержит только один аргумент, и объект-обработчик файла передается в качестве значения аргумента, из которого будут извлечены данные.
Синтаксис:
загрузить (объект_файла)Выберите простой объект для хранения в файле
Создайте файл с именем рассол1.ру со следующим скриптом Python. В следующем скрипте объект данных с именем dataObject объявлен для хранения пяти названий языков путем повторения цикла for. Затем метод open () используется для назначения обработчика файла для создания двоичного файла с именем языки. свалка() функция используется здесь для сериализации данных dataObject и сохраните его в языки файл. Если сериализация будет выполнена правильно, будет напечатано сообщение «Данные сериализованы».
# Импортируем модуль рассолаимпортный рассол
# Объявить объект для хранения данных
dataObject = []
# Повторяем цикл for 5 раз и берем названия языков
для n в диапазоне (5):
raw = input ('Введите название языка:')
dataObject.добавить (необработанный)
# Открываем файл для записи данных
file_handler = open ('языки', 'wb')
# Выгрузить данные объекта в файл
соленый огурец.дамп (объект данных, обработчик_файлов)
# закройте обработчик файлов, чтобы освободить ресурсы
file_handler.Закрыть()
# Распечатать сообщение
print ('Данные сериализованы')
Выход:
После запуска скрипта он примет в качестве входных данных пять названий языков.
Извлечь данные из файла
распаковка данных противоположна травлению данных. Создайте файл с именем рассол2.ру со следующим скриптом Python. Здесь, открыто() используется для открытия двоичного файла с именем языки, созданный в предыдущем примере. нагрузка() функция используется для извлечения данных из файла и сохранения их в переменной dataObject. Следующий, для цикл используется для итерации данных из dataObject и распечатать в терминале.
# Импортируем модуль рассолаимпортный рассол
# Открываем обработчик файлов для чтения файла, откуда будут загружаться данные
file_handler = open ('языки', 'rb')
# Загружаем данные из файла после десериализации
dataObject = рассол.загрузка (file_handler)
# Закрываем обработчик файлов
file_handler.Закрыть()
# Распечатать сообщение
print ('Данные после десериализации')
# Итерируем цикл для печати данных после десериализации
для val в dataObject:
print ('Значение данных:', val)
Выход:
Следующий вывод появится после запуска скрипта.
Привязать объект класса к файлу
Как можно мариновать объект класса, показано в следующем примере. Создайте файл с именем рассол3.ру со следующим сценарием. Здесь, Работник объявлен класс для присвоения трех значений данных сотрудника. Затем объект-обработчик файлов с именем fileHandler создается, чтобы открыть файл для записи. После инициализации объекта класса данные сериализуются с использованием свалка() функция и хранится в файле с именем employeeData. Если файл будет создан правильно, появится сообщение, «Данные сериализованы» напечатает.
# Импортировать модуль рассолаимпортный рассол
# Объявить класс сотрудника для хранения значения
класс Сотрудник:
def __init __ (я, имя, адрес электронной почты, сообщение):
себя.name = имя
себя.email = электронная почта
себя.post = сообщение
# Создать объект сотрудника
empObject = Сотрудник ('Фархин', '[электронная почта защищена]', 'Менеджер')
# Открыть файл для хранения данных
fileHandler = open ('данные сотрудника', 'wb')
# Сохраняем данные в файл
соленый огурец.дамп (empObject, fileHandler)
# Закрываем файл
fileHandler.Закрыть()
# Распечатать сообщение
print ('Данные сериализованы')
Выход:
Следующий вывод появится после запуска скрипта.
Распаковка данных в объект класса
Класс с необходимыми свойствами и методами потребует объявления для извлечения данных из файла в объект класса. Создайте файл с именем рассол4.ру со следующим кодом. Работник класс определен здесь для извлечения данных. fileObject переменная используется для открытия файла, employeeData для чтения. Следующий, нагрузка() функция используется для хранения данных в объекте класса после десериализации. отображать() функция Работник class вызывается для печати значений данных объекта класса.
# Импортировать модуль рассолаимпортный рассол
# Объявить класс сотрудника для чтения и печати данных из файла
класс Сотрудник:
def __init __ (я, имя, адрес электронной почты, сообщение):
себя.name = имя
себя.email = электронная почта
себя.post = сообщение
def display (self):
print ('Информация о сотруднике:')
print ('Имя:', self.название)
print ('Электронная почта:', self.электронное письмо)
print ('Сообщение:', self.Почта)
# Открываем файл для чтения
fileObject = open ('данные сотрудника', 'rb')
# Распаковываем данные
сотрудник = рассол.загрузить (fileObject)
# Закрыть файл
fileObject.Закрыть()
# распечатать фрейм данных
работник.отображать()
Выход:
Следующий вывод появится после запуска скрипта.
Заключение
Модуль Pickle - полезная функция Python для сериализации и десериализации данных. После выполнения примеров, показанных в этом руководстве, перенос данных из одного скрипта Python в другой скрипт Python станет проще для всех.