מילון חמוץ בפייתון

Mylwn Hmwz Bpyytwn



ניתן להשתמש ב-Pickle כדי לעבד מראש את מסגרות הישות של Python שהוא תהליך המרת אובייקט מהזיכרון לזרם בתים שניתן לשמור על דיסק כפורמט בינארי. הליך זה ידוע בשם סדרה. כדי להשיג זאת, השתמש בשיטת pickle dump() . כאשר רשומה בינארית זו נטענת שוב לתוכנית Python, ניתן לבטל אותה בסידרה ולהמיר אותה בחזרה לאובייקט Python באמצעות שיטת pickle load()‎.

מאמר זה מלמד אותך כיצד לאחסן את הנתונים, ליתר דיוק מילון, באמצעות מודול החמוצים של Python. כדי להתחיל, עלינו לרכוש את מודול החמוצים. Pickle dump() מקבל שלושה פרמטרים. הקלט הראשון מציין את הנתונים שיש לשמור. הפרמטר השני הוא אובייקט הקובץ שמוחזר כאשר קובץ נפתח במצב כתיבה-בינארי (wb). ארגומנט המפתח-ערך הוא הפרמטר השלישי. הפרוטוקול מוגדר על ידי פרמטר זה. מלפפון חמוץ מסווג לשני סוגים: פרוטוקול HIGHEST PROTOCOL וכן פרוטוקול ברירת מחדל. כדי לאחזר או לבטל את הנתונים, נעשה שימוש בשיטת pickle load() שבאמצעותה מתקבל אובייקט קובץ על ידי פתיחת קובץ במצב קריאה-בינארי (rb).







דוגמה 1: הסדרת וסידריאליזציה של נתונים בקובץ חמוצים באמצעות פונקציית ההשלכה והטעינה של חמוצים

בדוגמה זו, נלמד כיצד להפוך את הנתונים בסריאליזציה וסידריאליזציה כמילון עם קוד פשוט מאוד.




בקוד שהוצג באיור הקודם, מודול החמוצים הראשון מספריית Python מיובא כך שניתן יהיה להשתמש בשיטות שלו. לאחר מכן, מילון נתונים עם 2 מפתחות וערכים מאותחל ומאוחסן במשתנה בשם 'צורה'. בשורה הבאה, שיטת pickle dump() משמשת לפתיחת קובץ חדש בשם 'info.p' במצב כתיבה-בינארי (wb) ונתוני ה'צורה' מאוחסנים בקובץ זה. בשורה הבאה, שיטת ה- pickle load() משמשת עבור אותו קובץ שבו זרקנו את הנתונים במצב rb. זה מחזיר את נתוני המילון שלנו ומאוחסן במשתנה בשם 'a'. לבסוף, האובייקט המוחזר הזה מוצג במסוף הפלט באמצעות פקודת ההדפסה כפי שמוצג בצילום המסך הבא.



אנו יכולים לראות שהנתונים אוחסנו לראשונה בקובץ 'info.p' בשיטת ה-dump. לאחר מכן, כאשר השתמשנו בשיטת load() לאותו קובץ, קיבלנו בחזרה את הנתונים שלנו.





דוגמה 2: שימוש בפונקציית השלכת חמוצים עם פרוטוקול נוסף להסדרת הנתונים ב-Python

זוהי דוגמה דומה בה אנו משתמשים בפרוטוקול נוסף, 'HIGHEST_PROTOCOL', של מלפפון חמוץ שהוא הפרוטוקול העדכני ביותר. פרוטוקול זה מאפשר תכונות שפה חדשות שבהן נוכל להשתמש וכולל אופטימיזציות.




בקוד שסופק באיור הקודם, מודול החמוצים הראשון מיובא. לאחר מכן, מילון של פריט אחד עם מפתח וערך מאותחל ומאוחסן במשתנה 'a'. בשורה הבאה, קובץ חדש שהוא 'info.p' נפתח במצב wb כידית. כעת, הקובץ נמצא באובייקט שנקרא 'handle'. לאחר מכן, הפונקציה dump() מופעלת כדי ''טיפול' עם המילון 'a' באמצעות ה-'HIGHEST_PROTOCOL'. זה מאפשר לשמור את המילון ב-'a' בקובץ 'info.p' בדיסק של המחשב. כדי לחלץ את המידע מהקובץ, הקובץ נפתח תחילה במצב 'rb'. לאחר מכן, שיטת ה- pickle load() מופעלת עבור קובץ זה. הנתונים המוחזרים נשמרים בתכונה 'b'. לבסוף, באמצעות פקודת ההדפסה, המידע הזה מוצג בצומת הפלט, כפי שניתן לראות בצילום המסך הבא:

דוגמה 3: הסדרה וביטול בהמשכה של רשימת נתונים בקובץ חמוצים באמצעות פונקציית ההשלכה והטעינה של חמוצים

בדוגמה זו, מודול החמוצים מיובא ראשון. לאחר מכן, נתונים מסוימים מוכנסים למילון בפורמט רשימה ומאוחסנים במשתנה 'shape_colors'. בשורה הבאה, השיטה של ​​pickle dump() מופעלת ישירות עם הנתונים הללו. במקום הקובץ בפרמטר שלו, הקובץ 'info.p' נפתח במצב wb. כתוצאה מכך, נתוני המילון נזרקים כעת לקובץ זה המאוחסן בדיסק של המחשב. לאחר מכן, כדי לקרוא את הנתונים מהקובץ, שיטת pickle load() מופעלת על אותו קובץ. הנתונים המוחזרים נשמרים במשתנה 'a'. לבסוף, באמצעות פקודת ההדפסה, המידע הזה מוצג במסופים המשניים, כפי שמתואר בתמונת המצב הבאה:



דוגמה 4: אחסון מידע בקובץ חמוצים באמצעות פונקציות השלכת חמוצים וטעינה עם פרמטרים שונים

בקוד שסופק, מודול החמוצים הראשון מיובא. לאחר מכן, מילון משכורות מאותחל ומאוחסן במשתנה 'משכורות'. בשורה הבאה, קובץ חדש 'salary.p' נפתח במצב wb כידית. כעת, הקובץ נמצא באובייקט שנקרא 'handle'. לאחר מכן, הפונקציה Pickle dump() משמשת כדי 'לטפל' עם מילון 'משכורות' באמצעות 'HIGHEST_PROTOCOL'. זה מאפשר לשמור את המילון ב'משכורות' בקובץ 'salary.p' על גבי הדיסק של המחשב. כעת, על מנת לאחזר את הנתונים בחזרה מהקובץ, הקובץ נפתח תחילה במצב 'rb'. לאחר מכן, שיטת ה- pickle load() מופעלת עבור קובץ זה. המידע שהוחזר נשמר במשתנה 'a'. בסופו של דבר, באמצעות פקודת ההדפסה, הנתונים האלה מוצגים בקצה הפלט כפי שמתואר בתמונת המצב הבאה:



דוגמה 5: הסדרת וסידריאליזציה של נתונים במספר מימדים בקובץ חמוצים באמצעות פונקציית ההשלכה והטעינה של חמוצים

יצירת DataFrames (טבלאות רב-ממדיות) ב-Python שימושית לבדיקת שיטות ופונקציות חדשות שנמצאות במודול של Panda של Python. ישנן שיטות שונות לבנות DataFrame מאפס, אך אחת השיטות הפשוטות ביותר היא להשתמש במילון בסיסי.


בקוד שסופק באיור הקודם, מודולי החמוצים והפנדה הראשונים מיובאים. לאחר מכן, נוצרת טבלה רב-ממדית באמצעות שיטת pd.DataFrame()‎. התכונה הבאה של האסטרטגיה היא רשימה של ארבע רשימות. כל רשימה מתאימה לשורה בטבלה. הפרמטר השני הוא 'עמודות' שמגדיר את הכותרת של כל עמודה בטבלה. DataFrame זה מאוחסן ב-'pre'. לאחר מכן, קובץ חדש שהוא 'attendance.p' נפתח במצב wb ושיטת pickle dump() מופעלת על קובץ זה עם ה-DataFrame. כעת, הנתונים שצוינו מאוחסנים בקובץ 'attendance.p' בדיסק הקשיח של המחשב.


כדי לאחזר את הנתונים מהקובץ, נפתח את הקובץ במצב rb המאפשר את קריאת הקובץ. לאחר מכן, שיטת החמצה load() מופעלת בקובץ 'attendance.p'. לבסוף, הנתונים בקובץ מוצגים במסוף הפלט. כפי שאנו יכולים לראות, כל ה-DataFrame מוצג במסוף הפלט המאוחסן בקובץ 'attendance.p'.

סיכום

נקוט באמצעי זהירות נוספים בעת עבודה עם קבצי מלפפון חמוץ. מודול החמוצים חסר אבטחה. בטל רק את הנתונים שאתה בטוח בהם. אפשר ליצור נתוני חמוצים זדוניים שעלולים להפעיל קוד שרירותי במהלך תהליך ביטול הכבישה. עם זאת, זוהי שיטה יעילה לאחסון מילונים, רשימות וטבלאות בפייתון. כבישה מועילה במיוחד בניתוח נתונים כאשר אתה מבצע פעולות שגרתיות על הנתונים כגון עיבוד מקדים. אני מקווה שמאמר זה עזר לך ללמוד על השיטות השונות של מודול החמוצים של Python וכיצד להשתמש בו עם מילונים.