Python

Как да мариноваме обекти в Python

Как да мариноваме обекти в Python
Всички данни могат да бъдат сериализирани и десериализирани в Python с помощта на JSON и Pickle модул. Преди да съхраняват каквито и да е данни във файл, обектите на Python се сериализират с помощта на модул за туршия. Python обектите се преобразуват в символни потоци с помощта на този модул. Когато потребителят иска да извлече данните от файла за използване на друг python скрипт, тогава данните на файла се десериализират от модула на туршия. Характеристиките на модула на туршия и как този модул може да се използва в python скрипт за сериализация и десериализация са описани в този урок.

Особености на туршия:

dump () за сериализация:

функцията dump () се използва за преобразуване на данните на обекта в поток от символи преди записване във файл. Тази функция може да вземе три аргумента. Първите два аргумента са задължителни, а последният аргумент не е задължителен. Първият аргумент взема обект от данни, който трябва да сериализира. Вторият аргумент взема обект на обработващ файл на този файл, където ще се съхраняват събраните данни. Последният аргумент взема името на протокола.

Синтаксис:

сваляне (обект на данни, обект на файл, [протокол])

load () за десериализация:

Функцията load () се използва за преобразуване на данни от символен поток от файла в обект на Python. Тази функция съдържа само един аргумент и обектът за обработка на файлове на файл преминава като стойност на аргумента, откъдето данните ще бъдат извлечени.

Синтаксис:

зареждане (file_object)

Мариновайте прост обект, който да съхранявате във файл

Създайте файл с име туршия1.py със следния скрипт на python.  В следващия скрипт обект на данни с име dataObject се декларира да съхранява пет имена на езика чрез итерация на цикъла for. След това методът open () се използва за присвояване на манипулатор на файлове за създаване на двоичен файл с име езици. изхвърляне () тук се използва функцията за сериализиране на данните на dataObject и го съхранявайте в езици файл.  Ако сериализацията ще бъде извършена правилно, ще се отпечата съобщение „Данните са сериализирани“.

# Импортирайте модула за туршия
внос туршия
# Декларирайте обекта за съхраняване на данни
dataObject = []
# 5 пъти повторете цикъла for и вземете имена на езици
за n в обхват (5):
raw = input ('Въведете име на език:')
dataObject.добавяне (сурово)
# Отворете файл за запис на данни
file_handler = отворен ('езици', 'wb')
# Изхвърлете данните на обекта във файла
туршия.дъмп (dataObject, file_handler)
# затворете манипулатора на файлове, за да освободите ресурсите
file_handler.близо()
# Печат на съобщение
print ('Данните са сериализирани')

Изход:

След стартиране на скрипта ще са необходими пет езикови имена като вход.

Депилирайте данните от файл

депикирането на данните е обратното на ецването на данни. Създайте файл с име туршия2.py със следния скрипт на python. Тук, отворен () метод се използва за отваряне на двоичен файл с име езици, създаден в предишния пример. зареждане () функция се използва за депикиране на данните от файла и съхраняването им в променливата dataObject. Следващия, за цикъл се използва итерация на данните от dataObject и отпечатайте в терминала.

# Импортирайте модула за туршия
внос туршия
# Отворете манипулатор на файлове за четене на файл, откъдето данните ще се заредят
file_handler = отворен ('езици', 'rb')
# Заредете данните от файла след десериализация
dataObject = туршия.зареждане (file_handler)
# Затворете манипулатора на файлове
file_handler.близо()
# Печат на съобщение
print ('Данни след десериализация')
# Итерирайте цикъла, за да отпечатате данните след десериализация
за val в dataObject:
print ('Стойността на данните:', val)

Изход:

След стартиране на скрипта ще се появи следният изход.

Маркирайте обект на клас във файл

Как може да се маринова обект на клас е показано в следващия пример. Създайте файл с име туршия3.py със следния скрипт. Тук, Служител клас се декларира за присвояване на три стойности на данни на служител. След това име на обект на обработващ файл fileHandler е създаден, за да отвори файл за писане. След инициализиране на обекта на класа, данните се сериализират с помощта на изхвърляне () функция и се съхранява във файла с име Данни на служителя. Ако файлът ще се създаде правилно, тогава съобщението, „Данните са сериализирани“ ще отпечата.

# Импортиране на модул за туршия
внос туршия
# Декларирайте класа на служителя, за да съхраните стойността
клас Служител:
def __init __ (себе си, име, имейл, публикация):
себе си.име = име
себе си.имейл = имейл
себе си.публикация = публикация
 
# Създаване на обект на служител
empObject = Служител ('Farheen', '[имейл защитен]', 'Мениджър')
# Отваряне на файл за данни от магазина
fileHandler = отворен ('workerData', 'wb')
# Запазете данните във файла
туршия.изхвърляне (empObject, fileHandler)
# Затворете файла
fileHandler.близо()
# Печат на съобщение
print ('Данните са сериализирани')

Изход:

След стартиране на скрипта ще се появи следният изход.

Депикирайте данните в обект на клас

Клас с необходимите свойства и методи ще изисква да декларира за извличане на данните от файл в обект на клас. Създайте файл с име туршия4.py със следния код. Служител тук е дефиниран клас за извличане на данните. fileObject променливата се използва за отваряне на файла, Данни на служителя за четене. Следващия, зареждане () функция се използва за съхраняване на данните в обекта на класа след десериализация. дисплей () функция на Служител class се извиква, за да отпечата стойностите на данните на обекта на класа.

# Импортиране на модул за туршия
внос туршия
# Декларирайте клас на служител за четене и отпечатване на данни от файл
клас Служител:
def __init __ (себе си, име, имейл, публикация):
себе си.име = име
себе си.имейл = имейл
себе си.публикация = публикация
def дисплей (самостоятелно):
print ('Информация за служителя:')
print ('Име:', самостоятелно.име)
print ('Имейл:', самостоятелно.електронна поща)
print ('Публикуване:', самостоятелно.пост)
 
# Отворете файла за четене
fileObject = отворен ('workerData', 'rb')
# Депилирайте данните
служител = туршия.зареждане (fileObject)
# Затворете файла
fileObject.близо()
# отпечатайте рамката с данни
служител.дисплей ()

Изход:

След стартиране на скрипта ще се появи следният изход.

Заключение

Модулът Pickle е полезна характеристика на python за сериализация и десериализация на данни. След попълване на примерите, показани в този урок, прехвърлянето на данни от един python скрипт в друг python скрипт ще бъде по-лесно за всеки.

Преглед на безжична мишка на Microsoft Sculpt Touch
Наскоро прочетох за Microsoft Sculpt Touch безжична мишка и реших да я купя. След като го използвах известно време, реших да споделя опита си с него. ...
Екранен тракпад и указател на мишката на AppyMouse за таблети с Windows
Потребителите на таблети често пропускат показалеца на мишката, особено когато са привични да използват лаптопите. Смартфоните и таблетите със сензоре...
Средният бутон на мишката не работи в Windows 10
The среден бутон на мишката ви помага да превъртате дълги уеб страници и екрани с много данни. Ако това спре, добре ще свършите да използвате клавиату...