Pickle речник в Python

Pickle Recnik V Python



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

Тази статия ви учи как да съхранявате данните, по-специално речник, като използвате модула pickle на Python. За да започнем, трябва да осигурим модула за туршия. Pickle dump() приема три параметъра. Първият вход определя данните за запис. Вторият параметър е файловият обект, който се връща при отваряне на файл в двоичен режим на запис (wb). Аргументът ключ-стойност е третият параметър. Протоколът се определя от този параметър. Pickle се класифицира в два типа: НАЙ-ВИСОК ПРОТОКОЛ, както и pickle ПРОТОКОЛ ПО ПОДРАЗБИРАНЕ. За извличане или десериализиране на данните се използва методът pickle load(), чрез който се получава файлов обект чрез отваряне на файл в двоичен режим за четене (rb).







Пример 1: Сериализация и десериализация на данни във файл Pickle с помощта на функцията Pickle Dump и Load

В този пример ще научим как да сериализираме и десериализираме данните като речник с много прост код.




В кода, представен в предишната илюстрация, първият модул pickle от библиотеката на Python е импортиран, така че неговите методи да могат да се използват. След това се инициализира речник от данни с 2 ключа и стойности и се съхранява в променливата с име „форма“. В следващия ред методът pickle dump() се използва за отваряне на нов файл с името „info.p“ в двоичен режим на запис (wb) и данните „shape“ се съхраняват в този файл. В следващия ред методът pickle load() се използва за същия файл, в който изхвърлихме данните в режим rb. Това връща данните от нашия речник и се съхранява в променливата с име „a“. Накрая, този върнат обект се показва на изходния терминал с помощта на командата за печат, както е показано на следващата екранна снимка.



Можем да видим, че данните първо са били съхранени във файла „info.p“, използвайки метода на дъмп. След това, когато използвахме метода load() към същия файл, получихме обратно нашите данни.





Пример 2: Използване на функцията Pickle Dump с допълнителен протокол за сериализиране на данните в Python

Това е подобен пример, в който използваме допълнителен протокол, „HIGHEST_PROTOCOL“, на pickle, който е най-новият протокол. Този протокол позволява нови езикови функции, които можем да използваме и включва оптимизации.




В кода, предоставен в предишната илюстрация, се импортира първият модул pickle. След това речник на един елемент с ключ и стойност се инициализира и съхранява в променливата „a“. В следващия ред нов файл, който е „info.p“, се отваря в режим wb като манипулатор. Сега файлът е в обекта, наречен 'дръжка'. След това функцията dump() се използва за „обработване“ с речника „a“, използвайки „HIGHEST_PROTOCOL“. Това позволява речникът в „a“ да бъде записан във файла „info.p“ на диска на компютъра. За да извлечете информацията от файла, файлът първо се отваря в режим „rb“. След това методът pickle load() се използва за този файл. Върнатите данни се записват в атрибута “b”. Накрая, използвайки командата за печат, тази информация се показва в изходния възел, както се вижда на следния екранен кадър:

Пример 3: Сериализация и десериализация на списък с данни във файл Pickle с помощта на функцията Pickle Dump и Load

В този пример първо се импортира модулът pickle. След това някои данни се вмъкват в речник във формат на списък и се съхраняват в променливата „shape_colors“. В следващия ред методът pickle dump() се използва директно с тези данни. На мястото на файла в неговия параметър се отваря файлът “info.p” в режим wb. В резултат на това данните от речника сега се изхвърлят в този файл, който се съхранява на диска на компютъра. След това, за да се прочетат данните от файла, методът pickle load() се използва за същия файл. Върнатите данни се записват в променливата „a“. И накрая, с помощта на командата за печат, тази информация се показва на вторичните терминали, както е показано на следната моментна снимка:



Пример 4: Съхраняване на информация във файл Pickle с помощта на функциите Pickle Dump и Load с различни параметри

В предоставения код се импортира първият модул за туршия. След това се инициализира речник на заплатите и се съхранява в променливата „заплати“. В следващия ред се отваря нов файл „salary.p“ в режим wb като манипулатор. Сега файлът е в обекта, наречен 'дръжка'. След това функцията pickle dump() се използва за „обработване“ с речника „заплати“, използвайки „HIGHEST_PROTOCOL“. Това позволява речникът в „заплати“ да бъде записан във файла „salary.p“ на диска на компютъра. Сега, за да извлечете данните обратно от файла, файлът първо се отваря в режим „rb“. След това методът pickle load() се използва за този файл. Възстановената информация се записва в променливата „a“. В крайна сметка чрез използване на командата за печат тези данни се показват в изходния край, както е показано на следната моментна снимка:



Пример 5: Сериализация и десериализация на данни в множество измерения във файл Pickle с помощта на функцията Pickle Dump и Load

Създаването на DataFrames (многоизмерни таблици) в Python е удобно за тестване на нови методи и функции, намерени в модула на Panda на Python. Има различни методи за изграждане на DataFrame от нулата, но един от най-простите е използването на основен речник.


В кода, предоставен в предишната илюстрация, се импортират първите модули pickle и Pandas. След това се създава многоизмерна таблица с помощта на метода pd.DataFrame(). Следващият атрибут на стратегията е списък от четири списъка. Всеки списък съответства на ред от таблицата. Вторият параметър е „колони“, който определя заглавието на всяка колона от таблицата. Този DataFrame се съхранява в „pre“. След това нов файл, който е „attendance.p“, се отваря в режим wb и методът pickle dump() се използва за този файл с DataFrame. Сега посочените от нас данни се съхраняват във файла “attendance.p” на твърдия диск на компютъра.


За да извлечем данните от файла, отваряме файла в режим rb, който позволява четенето на файла. След това методът pickle load() се използва във файла “attendance.p”. Накрая данните във файла се показват на изходния терминал. Както виждаме, целият DataFrame се показва на изходния терминал, който се съхранява във файла “attendance.p”.

Заключение

Вземете допълнителни предпазни мерки, когато работите с файлове за кисели краставички. На модула pickle му липсва сигурност. Отстранете само данните, в които сте уверени. Възможно е да създадете злонамерени данни от pickle, които могат да изпълнят произволен код по време на процеса на депиклиране. Въпреки това е ефективен метод за съхраняване на речници, списъци и таблици в Python. Оставянето е особено полезно при анализ на данни, когато изпълнявате рутинни операции върху данните, като например предварителна обработка. Надявам се, че тази статия ви помогна да научите за различните методи на модула pickle на Python и как да го използвате с речници.