البرمجة

تخزين القواميس في Python باستخدام pickle و joblib

عندما يتعلق الأمر بتخزين البيانات في Python، فإن استخدام مكتبة NumPy يعد خيارًا شائعًا لتخزين وتحميل البيانات بشكل فعال. ومع ذلك، قد يكون هناك بعض التحديات عند محاولة تخزين وتحميل القواميس (المصفوفات الفرعية) باستخدام دوال np.save و np.load.

تشير القضية التي واجهتها إلى أن القاموس تم تحميله كمصفوفة NumPy بدلاً من كونه قاموسًا فعليًا، وهذا يؤدي إلى عدم القدرة على استخدام العمليات القاموسية العادية مثل get.

لحل هذه المشكلة، يمكنك استخدام مكتبة أخرى مثل pickle لتخزين القواميس بدلاً من NumPy، حيث تسمح pickle بتخزين الأشياء بشكل أكثر تعميمًا، بما في ذلك القواميس. إليك كيفية استخدامها:

python
import pickle # حفظ القاموس باستخدام pickle with open('d1.pickle', 'wb') as f: pickle.dump(d1, f) # تحميل القاموس باستخدام pickle with open('d1.pickle', 'rb') as f: d2 = pickle.load(f) # يمكنك الآن استخدام العمليات القاموسية بشكل طبيعي print(d2.get('key2')) # ستعطي [50, 100]

باستخدام pickle، يمكنك تخزين البيانات بتنوع أكبر، بما في ذلك القواميس، واستعادتها بكفاءة دون فقدان بنية البيانات الأصلية.

المزيد من المعلومات

علاوةً على ذلك، بالإضافة إلى مكتبة pickle، يمكن استخدام مكتبة joblib التي تأتي كجزء من مكتبة scikit-learn، والتي توفر وظائف مماثلة لتلك المتوفرة في pickle ولكن مع تحسينات في الأداء، خاصةً عند التعامل مع بيانات كبيرة.

فيما يلي كيفية استخدام joblib لحفظ وتحميل القواميس:

python
from joblib import dump, load # حفظ القاموس باستخدام joblib dump(d1, 'd1.joblib') # تحميل القاموس باستخدام joblib d2 = load('d1.joblib') # يمكنك الآن استخدام العمليات القاموسية بشكل طبيعي print(d2.get('key2')) # ستعطي [50, 100]

توفر joblib وظائف مماثلة لـ pickle وتتميز بالأداء الجيد عند التعامل مع البيانات الكبيرة، مما يجعلها خيارًا ممتازًا لتخزين واسترجاع البيانات في حالات الاستخدام حيث يكون الأداء أمرًا حاسمًا.

بالتالي، يمكنك استخدام إما pickle أو joblib لحفظ القواميس وغيرها من الهياكل البيانية في Python بشكل فعال وسهل الاستخدام، مما يسمح لك بالحفاظ على بياناتك واسترجاعها بسهولة دون فقدان التنسيق أو البنية الأصلية للبيانات.

مقالات ذات صلة

زر الذهاب إلى الأعلى
إغلاق

أنت تستخدم إضافة Adblock

يرجى تعطيل مانع الإعلانات حيث أن موقعنا غير مزعج ولا بأس من عرض الأعلانات لك فهي تعتبر كمصدر دخل لنا و دعم مقدم منك لنا لنستمر في تقديم المحتوى المناسب و المفيد لك فلا تبخل بدعمنا عزيزي الزائر