Python

Как мариновать объекты в Python

Как мариновать объекты в Python
Любые данные можно сериализовать и десериализовать в Python с помощью модуля JSON и Pickle. Перед сохранением каких-либо данных в файле объекты Python сериализуются с помощью модуля pickle. С помощью этого модуля объекты Python преобразуются в потоки символов. Когда пользователь хочет получить данные файла для использования другого скрипта Python, данные файла десериализуются модулем pickle. В этом руководстве описаны особенности модуля pickle и то, как этот модуль можно использовать в скрипте 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 станет проще для всех.

5 лучших аркад для Linux
В настоящее время компьютеры - это серьезные машины, используемые для игр. Если вы не можете получить новый рекорд, вы поймете, о чем я. В этом посте ...
Битва за Веснот 1.13.6 Выпущена разработка
Битва за Веснот 1.13.6, выпущенная в прошлом месяце, является шестой разработкой в ​​1.13.x и содержит ряд улучшений, в первую очередь пользовательско...
Как установить League Of Legends на Ubuntu 14.04
Если вы поклонник League of Legends, то это возможность для вас протестировать League of Legends. Обратите внимание, что LOL поддерживается в PlayOnLi...