इस लेख में, हम पायथन में विभिन्न डेटा टाइप्स को पिकल करने के बारे में जानेंगे। हम बूलियन्स, इंटीजर्स, फ्लोट्स, कॉम्प्लेक्स नंबर्स, स्ट्रिंग्स, टुपल्स, लिस्ट्स, सेट्स, और डिक्शनरीज को पिकल कर सकते हैं जिनमें पिकलेबल ऑब्जेक्ट्स होते हैं। कुछ एंटिटीज जैसे जेनरेटर्स, इनर लोकल क्लासेस, लैम्ब्डा फंक्शन्स को पिकल नहीं किया जा सकता।
पिकलिंग क्या है?
पिकलिंग में पायथन ऑब्जेक्ट टाइप की एंटिटीज और संबंधित संरचनाओं को सीरियलाइज़ और डी-सीरियलाइज़ करने का एक निरंतर चक्र शामिल होता है, जिसे मार्शलिंग या फ्लैटनिंग भी कहा जाता है। इसमें मेमोरी में स्थित एक ऑब्जेक्ट को बाइट्स के रूप में परिवर्तित करना शामिल होता है जिसे डिस्क पर स्टोर किया जा सकता है या लोकल नेटवर्क पर भेजा जा सकता है।
इसके उपयोग में बाधाएं?
जब हम विभिन्न प्रोग्रामिंग भाषाओं का उपयोग करके डेटा साझा करना चाहते हैं, तो पिकल मॉड्यूल के उपयोग को प्राथमिकता नहीं दी जाती है। इसका मतलब है कि क्रॉस-प्लेटफॉर्म संगतता की गारंटी नहीं है।
पिकलिंग रॉ डेटा पर बिना फाइल हैंडलिंग के की जा सकती है। इस मॉड्यूल में, हम सीखेंगे कि हम सीरियलाइज़ेशन की प्रक्रिया द्वारा रॉ डेटा को बाइनरी फ़ाइलों में कैसे पिकल कर सकते हैं।
उदाहरण
# पायथन पिकलिंग
import pickle as pk
def learnData():
# डेटाबेस में स्टोर करने के लिए डेटा
dict_1 = {'tutorial': 'point', 'Python': '3.x'}
dict_2 = {'Data structure': 'dictionary', 'pickling': 'serialization'}
# डेटाबेस
db = {}
db['1'] = dict_1
db['2'] = dict_2
# फाइल पॉइंटर का उपयोग करके एपेंड मोड में बाइनरी फ़ाइल खोलना
fp = open('Newfile', 'ab')
# स्रोत, गंतव्य
pk.dump(db, fp)
fp.close()
def displayData():
# फाइल पॉइंटर का उपयोग करके रीड मोड में बाइनरी फ़ाइल खोलना
fp = open('Newfile', 'rb')
db = pk.load(fp)
for i in db:
print(i, '=>', db[i])
fp.close()
if __name__ == '__main__':
learnData()
displayData()
आउटपुट
dict_1 = {'tutorial': 'point', 'Python': '3.x'}
dict_2 = {'Data structure': 'dictionary', 'pickling': 'serialization'}निष्कर्ष
इस लेख में, हमने पायथन 3.x या उससे पहले के संस्करण में बिल्ट-इन पिकल मॉड्यूल का उपयोग करके पिकल और अनपिकल करना सीखा।