उन्नत पायथन विकास पाठ्यक्रम
अध्याय
>
स्तर
सीरियलाइज़ेशन मॉड्यूल्स
JSON मॉड्यूल
उद्देश्य
सेवा स्टेशन पर जाएँ और JSON मॉड्यूल का उपयोग करके फ़ाइलों को स्वरूपित कर डेटा को सही तरीके से संग्रहीत करें।
नई निर्माण सुविधा में अनुलग्नक भवन के दक्षिण में एक सेवा स्टेशन है, इस पूरे क्षेत्र को फसलों की खेती के लिए पुनर्विकसित किया जाएगा। इस स्टेशन में नई विकास प्रक्रिया के लिए डेटा संसाधित करने वाले विभिन्न टर्मिनल मौजूद हैं। हम मैन्युअल रूप से डेटा लिख सकते हैं, लेकिन इसमें बहुत समय लगेगा। डेटा को प्रबंधित करने की प्रक्रिया के लिए हम JSON (JavaScript Object Notation) का उपयोग कर सकते हैं। यह एक डेटा फ़ॉर्मेट है जो प्रोग्रामिंग भाषाओं से स्वतंत्र है और डेटा स्टोरेज तथा ट्रांसमिशन के लिए पठनीय रूप में जानकारी संग्रहीत करता है।
Python में JSON का उपयोग करने के लिए हम import json का प्रयोग कर सकते हैं, जो हमें JSON फ़ंक्शंस तक पहुंच प्रदान करेगा। हमारे उद्देश्य के लिए हम निम्नलिखित फ़ंक्शंस का उपयोग करेंगे:
json.loads(): JSON स्ट्रिंग को Python डेटा में बदलता है, एक आर्गुमेंट लेता है, जो उस स्ट्रिंग को Python में पार्स करना होती है।json.dumps(): Python डेटा को JSON स्ट्रिंग ऑब्जेक्ट में बदलता है। यह फ़ंक्शन अधिकतम चार (4) आर्गुमेंट ले सकता है, जिनमें से केवल पहला आर्गुमेंट जरूरी है। ये आर्गुमेंट इस प्रकार हैं:- Python डेटा जिसे आप JSON में बदलना चाहते हैं: ये निम्न डेटा प्रकारों में हो सकते हैं: dictionaries, lists, tuples, string, integer, float, boolean, और None।
indent: उस डेटा पॉइंट की शुरुआत में जोड़ने के लिए रिक्त स्थानों की संख्या।separators: वे भाग जो आप डेटा पॉइंट्स के बीच और/या अंत में दिखाना चाहते हैं।sort_keys: यदि आप dictionary को JSON में बदल रहे हैं तो डिक्शनरी की चाबियों को अक्षरानुसार क्रमबद्ध करता है।
शुरू करने के लिए, बाएँ स्थित आउटपोस्ट में सोने वाले X मार्क पर जाएँ और नोट्स वाले डेस्क की ओर मुड़ें। टर्मिनल की स्थिति की पुष्टि के लिए आवश्यक जानकारी सत्यापित करने हेतु read() फ़ंक्शन का उपयोग करें और उसका नोट बनाएं। फिर टर्मिनल के सामने हल्के X मार्क तक चलें, वहाँ transmission नामक एक constant है, इसे JSON में फ़ॉर्मेट करने के लिए json.dumps() का उपयोग करें, इस तरह: transmission = json.dumps(transmission)।
load नामक एक dictionary बनाएं और उसमें json.loads() का मान transmission constant को आर्गुमेंट के रूप में देकर स्टोर करें। इससे JSON Python में कन्वर्ट हो जाएगा ताकि इसकी जानकारी आसानी से एक्सेस की जा सके। उसके बाद memo में दिए गए keys के साथ और आपके द्वारा बनाए गए load dictionary का उपयोग करके speak() फ़ंक्शन का प्रयोग करें। उदाहरण के लिए: player.speak(load["system"]), ऐसा सभी keys के लिए करें।
टर्मिनल पर जानकारी जांचने के बाद स्टेशन की ओर नीचे चलें, अंदर जाएँ और हरे कालीन पर हल्के X मार्क तक पहुँचें। read() फ़ंक्शन का उपयोग करके memo की जाँच करें और मानों का नोट बनाएं। एडिटर में एक पहले से लिखा हुआ profile नामक dictionary है, इसमें memo में दी गई जानकारी से लापता मान भरें।
हरे कालीन पर डार्क X मार्क तक चलें, टर्मिनल की ओर मुड़ें और transfer नामक एक variable बनाएं तथा उसमें json.dumps() का मान स्टोर करें, जिसमें एकमात्र आर्गुमेंट के रूप में profile dictionary हो। ऐसा करने से dictionary JSON स्ट्रिंग ऑब्जेक्ट में बदल जाती है। पहले से लिखे हुए display() फ़ंक्शन का उपयोग करें और डेटा स्टोर करने के लिए transfer JSON पास करें।
लाल कालीन पर डार्क X मार्क तक चलें और टर्मिनल में पहले से दर्ज डेटा की पुष्टि के लिए read() फ़ंक्शन का उपयोग करें। डेटा उचित फॉर्मेट में प्रस्तुत नहीं है, इसलिए इसे सही ढंग से स्टोर और फ़ॉर्मेट करना होगा। डेटा red_data नामक एक dictionary constant में स्टोर है, red_storage नामक एक variable बनाएं और इसमें json.dumps() फ़ंक्शन का मान स्टोर करें।
डेटा को फ़ॉर्मेट करने के लिए फ़ंक्शन में निम्न आर्गुमेंट जोड़ें: constant को JSON में बदलने के लिए red_data जोड़ें, टेक्स्ट को फ़ॉर्मेट करने के लिए indent जोड़कर इसे 5 सेट करें, और प्रत्येक लाइन के अंत में ये सिंबल जोड़ने के लिए separators में (\"- \", \" = \" ) जोड़ें। लाइन इस प्रकार दिखनी चाहिए: red_storage = json.dumps(red_data, indent=5, separators=("- ", " = "))। पहले से लिखे हुए display() का उपयोग करें और फ़ॉर्मेट किया गया डेटा स्टोर और डिस्प्ले करने के लिए red_storage JSON स्ट्रिंग पास करें।
नीले कालीन पर डार्क X मार्क तक चलें, टर्मिनल की ओर मुड़ें और read() फ़ंक्शन का उपयोग करें। पिछले चरण की तरह, डेटा सही तरीके से स्टोर नहीं है और इसे फ़ॉर्मेट करने के साथ-साथ क्रमबद्ध भी करना है। डेटा blue_data नामक एक constant में स्टोर है, blue_storage नामक एक variable बनाएं और इसमें json.dumps() फ़ंक्शन का मान स्टोर करें।
आर्गुमेंट्स के लिए: constant को JSON में बदलने के लिए blue_data जोड़ें, टेक्स्ट को फ़ॉर्मेट करने के लिए indent जोड़कर इसे 4 सेट करें, प्रत्येक लाइन के अंत में ये सिंबल जोड़ने के लिए separators में (\".0\", \" = \" ) जोड़ें। इसके अतिरिक्त, अंतिम आर्गुमेंट के रूप में sort_keys=True जोड़ें। इस तरह: sort_keys=True। पहले से लिखे गए display() का उपयोग करें और क्रमबद्ध डेटा स्टोर व डिस्प्ले करने के लिए blue_storage JSON स्ट्रिंग पास करें और इस स्तर को पूरा करें।