पायथन में Json फ़ाइलें कैसे पढ़ें और लिखें?

How Read Write Json Files Python



यह लेख बताएगा कि पायथन प्रोग्रामिंग भाषा में JSON फ़ाइलों और डेटा को कैसे संभालना है। पायथन एक अंतर्निहित जेसन मॉड्यूल के साथ आता है जो JSON डेटा को आसान और सीधा संभालता है।

JSON के बारे में

JSON (जावास्क्रिप्ट ऑब्जेक्ट नोटेशन) एक फ़ाइल स्वरूप और डेटा संग्रहण मानक है जो डेटा को संग्रहीत और विनिमय करने के लिए कुंजी-मूल्य जोड़े का उपयोग करता है। यह सबसे व्यापक रूप से उपयोग किया जाने वाला डेटा एक्सचेंज प्रारूप है, जिसे अक्सर रेस्टफुल एपीआई, लाइटवेट डेटाबेस, कॉन्फिग फाइल और अन्य ऑफ़लाइन या ऑनलाइन सॉफ़्टवेयर में देखा जाता है, जिसे डेटा को स्टोर, पुनर्प्राप्त और एक्सचेंज करने की आवश्यकता होती है। अधिकांश प्रोग्रामिंग भाषाओं में डिफ़ॉल्ट रूप से JSON डेटा को पार्स और लिखने के लिए लाइब्रेरी शामिल हैं और JSON एक प्रोग्रामिंग भाषा अज्ञेय डेटा प्रारूप है। JSON फ़ाइल या पेलोड में संग्रहीत मानों में आमतौर पर तार, संख्याएँ और क्रमबद्ध डेटा प्रकार जैसे सूचियाँ (सरणी) होते हैं।







JSON और पायथन डिक्शनरी

पायथन में JSON डेटा को लोड विधि का उपयोग करके एक डिक्शनरी ऑब्जेक्ट में बदल दिया जाता है। अक्सर यह देखा जाता है कि कुछ लोग जोंस डेटा और एक पायथन डिक्शनरी की बराबरी करते हैं, क्योंकि दोनों को परिभाषित करने के लिए सिंटैक्स लगभग समान है। हालाँकि, json डेटा एक कठोर सिंटैक्स में संरचित टेक्स्ट स्ट्रिंग के अलावा और कुछ नहीं है, जबकि एक पायथन डिक्शनरी एक डेटा संरचना ऑब्जेक्ट है जिसे मेमोरी में संग्रहीत किया जाता है। यदि आप किसी टेक्स्ट फ़ाइल में डिक्शनरी डेटा स्टोर करना चाहते हैं या इसे किसी अन्य गैर-पायथन प्रोग्राम में भेजना चाहते हैं, तो आपको पहले इसे टेक्स्ट स्ट्रिंग (बाइट्स) में बदलना होगा। इस डंप/रूपांतरित टेक्स्ट स्ट्रिंग को JSON के मानक सिंटैक्स में परिभाषित किया गया है और एक अजगर शब्दकोश को एक json संगत स्ट्रिंग में बदलने की प्रक्रिया को क्रमांकन कहा जाता है।



पायथन में JSON डेटा को पढ़ना और डंप करना

JSON डेटा को एक सर्वर के रूप में प्रतिक्रिया के रूप में पुनर्प्राप्त किया जा सकता है, फ़ाइल से पढ़ा जा सकता है, URL क्वेरी पैरामीटर से कटा हुआ हो सकता है और इसी तरह। यह आलेख मुख्य रूप से स्थानीय रूप से संग्रहीत फ़ाइल से जेसन डेटा पढ़ने पर केंद्रित होगा। मान लें कि एक test.json फ़ाइल में निम्न डेटा है:



{'कोडनाम': 'ईओन एर्मिन', 'संस्करण': 'उबंटू 19.10'}

पायथन में test.json फ़ाइल को पढ़ने के लिए, आप नीचे दिए गए कोड का उपयोग कर सकते हैं:





आयातजेसन

साथ खोलना ('टेस्ट.जेसन') जैसाएफ:
आंकड़े=जेसन।भार(एफ)

गंदी जगह=जेसन।उदासीनता(आंकड़े)

प्रिंट (आंकड़े)
प्रिंट (प्रकार(आंकड़े))
प्रिंट (गंदी जगह)
प्रिंट (प्रकार(गंदी जगह))

उपरोक्त कोड में पहली पंक्ति json मॉड्यूल आयात करती है। अगली पंक्ति में, फ़ाइल सामग्री को सुरक्षित रूप से पढ़ने के लिए open का उपयोग किया जाता है। विथ ओपन ब्लॉक के भीतर, डेटा वेरिएबल में फ़ाइल सामग्री को पढ़ने और संग्रहीत करने के लिए json.load विधि का उपयोग किया जाता है। पिछले चरण में लोड किए गए डेटा को json.dump विधि का उपयोग करके वापस जोंस स्ट्रिंग में परिवर्तित किया जाता है। ऊपर दिए गए कोड को चलाने से निम्न आउटपुट दिखाई देगा:

{'संकेत नाम':'इओन एर्मिन', 'संस्करण':'उबंटू 19.10'}
<कक्षा 'तानाशाह'>
{'संकेत नाम':'इओन एर्मिन', 'संस्करण':'उबंटू 19.10'}
<कक्षा 'स्ट्र'>

ऊपर दिए गए आउटपुट में ध्यान दें कि json.load मेथड कच्चे जोंस डेटा को पायथन डिक्शनरी में पढ़ता है जबकि json.dumps मेथड्स एक डिक्शनरी को एक स्ट्रिंग में कनवर्ट करता है जो JSON स्ट्रक्चर के अनुकूल है। एक बार जब JSON ऑब्जेक्ट को पायथन डिक्शनरी ऑब्जेक्ट में बदल दिया जाता है, तो आप डेटा को संभालने के लिए बिल्ट-इन पायथन डिक्शनरी विधियों का उपयोग कर सकते हैं। ऊपर दिया गया उदाहरण बहुत ही बुनियादी है और इसमें JSON डेटा या नेस्टेड मानों में सरणियाँ शामिल नहीं हैं। हालाँकि, अजगर के भीतर, आप इन मानों को किसी अन्य नेस्टेड शब्दकोशों और सूचियों की तरह संभाल सकते हैं।



छँटाई और सुंदर मुद्रण JSON डेटा

Json.dump विधि कुंजियों को छांटने और बेहतर पठनीयता के लिए आउटपुट को प्रिंट करने के लिए कुछ वैकल्पिक मापदंडों का समर्थन करती है।

आयातजेसन

साथ खोलना ('टेस्ट.जेसन') जैसाएफ:
आंकड़े=जेसन।भार(एफ)

गंदी जगह=जेसन।उदासीनता(आंकड़े,सॉर्ट_कीज़=सत्य,मांगपत्र=4)
प्रिंट (गंदी जगह)

उपरोक्त कोड निम्न आउटपुट दिखाएगा:

{
'कोडनेम': 'ईओन एर्मिन',
'संस्करण': 'उबंटू 19.10'
}

डेटा प्रकार रूपांतरण

नीचे दी गई सूची से पता चलता है कि कैसे JSON मानों को अजगर वस्तुओं में परिवर्तित किया जाता है और इसके विपरीत।

JSON अजगर
डोरी पी
संख्या इंट या फ्लोट
सही गलत सही गलत
शून्य कोई नहीं
सरणी सूची
वस्तु ताना

Json.tool कमांड लाइन मॉड्यूल

पायथन में एक अच्छी कमांड लाइन उपयोगिता json.tool शामिल है जिसका उपयोग JSON स्ट्रिंग्स और फाइलों को मान्य और सुंदर प्रिंट करने के लिए किया जा सकता है।

$ गूंज'{'कोडनाम': 'ईओन एर्मिन', 'संस्करण': 'उबंटू 19.10'}'| पायथन 3-एम जेसन।साधन

ऊपर दिए गए कमांड को चलाने से आपको निम्न आउटपुट दिखाई देगा:

{
'कोडनेम': 'ईओन एर्मिन',
'संस्करण': 'उबंटू 19.10'
}

आप JSON फ़ाइलों के साथ json.tool का भी उपयोग कर सकते हैं। नीचे दिए गए कमांड में in_file और out_file को अपने वांछित मानों से बदलें:

$ python3 -m json.साधनin_file out_file

JSON डेटा को सुंदर प्रिंटिंग, सॉर्टिंग और मान्य करने के अलावा, json.tool कुछ और नहीं करता है। इसलिए यदि आप किसी JSON डेटा में हेरफेर करना चाहते हैं, तो आपको अंतर्निहित JSON मॉड्यूल का उपयोग करके अपना स्वयं का कस्टम कोड लिखना होगा।