Computer >> कंप्यूटर >  >> प्रोग्रामिंग >> Python

पायथन में JSON एनकोडर और डिकोडर पैकेज

JSON का मतलब जावास्क्रिप्ट ऑब्जेक्ट नोटेशन है। यह एक हल्का डेटा इंटरचेंज प्रारूप है। यह अचार के समान है। हालाँकि, अचार क्रमांकन पायथन विशिष्ट है जबकि JSON प्रारूप कई भाषाओं द्वारा कार्यान्वित किया जाता है। पायथन के मानक पुस्तकालय में जेसन मॉड्यूल ऑब्जेक्ट क्रमांकन कार्यक्षमता को लागू करता है जो अचार और मार्शल मॉड्यूल के समान है।

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

डंप ()

यह फ़ंक्शन ऑब्जेक्ट को JSON प्रारूप में परिवर्तित करता है।

लोड ()

यह फ़ंक्शन JSON स्ट्रिंग को वापस पायथन ऑब्जेक्ट में कनवर्ट करता है।

निम्नलिखित उदाहरण इन कार्यों के बुनियादी उपयोग को दर्शाता है।

>>> import json
>>> data=['Rakesh',{'marks':(50,60,70)}]
>>> s=json.dumps(data)
>>> s
'["Rakesh", {"marks": [50, 60, 70]}]'
>>> json.loads(s)
['Rakesh', {'marks': [50, 60, 70]}]

वें डंप () फ़ंक्शन वैकल्पिक सॉर्ट_की तर्क ले सकता है। डिफ़ॉल्ट रूप से यह गलत है। यदि सही पर सेट किया जाता है, तो शब्दकोश कुंजियाँ JSON स्ट्रिंग में क्रमबद्ध क्रम में दिखाई देती हैं।

>>> data={"marks":50, "age":20, "rank":5}
>>> s=json.dumps(data, sort_keys=True)
>>> s
'{"age": 20, "marks": 50, "rank": 5}'
>>> json.loads(s)
{'age': 20, 'marks': 50, 'rank': 5}

डंप () फ़ंक्शन में एक और वैकल्पिक पैरामीटर है जिसे इंडेंट कहा जाता है जो एक संख्या को मान के रूप में लेता है। यह pprint आउटपुट के समान, json स्ट्रिंग के स्वरूपित प्रतिनिधित्व के प्रत्येक खंड की लंबाई तय करता है।

>>> data = ['Rakesh',{'marks':(50,60,70)}]
>>> s = json.dumps(data, indent=2)
>>> print (s)
[
   "Rakesh",{
      "marks": [
         50,
         60,
         70
      ]
   }
]

जेसन मॉड्यूल में उपरोक्त कार्यों के अनुरूप ऑब्जेक्ट ओरिएंटेड एपीआई भी है। मॉड्यूल में परिभाषित दो वर्ग हैं - JSONEncoder और JSONDecoder।

JSONEएनकोडर वर्ग

इस वर्ग का उद्देश्य पायथन डेटा संरचनाओं के लिए एन्कोडर है। प्रत्येक पायथन डेटा प्रकार को संबंधित JSON प्रकार में परिवर्तित किया जाता है जैसा कि निम्न तालिका में दिखाया गया है।

<वें शैली ="चौड़ाई:43.8375%; पाठ-संरेखण:केंद्र;">JSON
पायथन
dict ऑब्जेक्ट
list, tuple सरणी
str string
int, float, int- और float-व्युत्पन्न Enums number
सही सही
गलत false
कोई नहीं null

JSONEncoder क्लास को JSONEncoder() कंस्ट्रक्टर द्वारा इंस्टेंट किया जाता है। एन्कोडर वर्ग में निम्नलिखित महत्वपूर्ण विधियों को परिभाषित किया गया है

  • एन्कोड () - पायथन ऑब्जेक्ट को JSON फॉर्मेट में क्रमबद्ध करता है

  • iterencode() -ऑब्जेक्ट को एन्कोड करता है और ऑब्जेक्ट में प्रत्येक आइटम के एन्कोडेड रूप देने वाला एक इटरेटर देता है।

  • इंडेंट - एन्कोडेड स्ट्रिंग का इंडेंट स्तर निर्धारित करता है

  • सॉर्ट_की - चाबियों को क्रमबद्ध क्रम में प्रदर्शित करने के लिए या तो सही है या गलत।

  • चेक_सर्कुलर - अगर सही है, तो कंटेनर टाइप ऑब्जेक्ट में सर्कुलर रेफरेंस की जांच करें

निम्नलिखित उदाहरण पायथन सूची वस्तु को एन्कोड करता है।

>>> e=json.JSONEncoder()
>>> e.encode(data)
'["Rakesh", {"marks": [50, 60, 70]}]'

iterencode() विधि का उपयोग करके, एन्कोडेड स्ट्रिंग के प्रत्येक भाग को नीचे के रूप में प्रदर्शित किया जाता है

>>> for obj in e.iterencode(data):
print (obj)
[
   "Rakesh"
   {
      "marks"
      :
      [
         50
         , 60
         , 70
      ]
   }
]

JSONDEcoder वर्ग

इस वर्ग का ऑब्जेक्ट जेसन स्ट्रिंग में वापस पायथन डेटा ट्रुचर में डीकोड करने में मदद करता है। इस वर्ग में मुख्य विधि डिकोड () है। निम्नलिखित उदाहरण कोड पहले चरण में एन्कोडेड स्ट्रिंग से पायथन सूची वस्तु को पुनः प्राप्त करता है।

>>> d=json.JSONDecoder()
>>> d.decode(s)
['Rakesh', {'marks': [50, 60, 70]}]

फ़ाइलों/स्ट्रीम के साथ JSON

json मॉड्यूल लोड () और डंप () फ़ंक्शन को ऑब्जेक्ट जैसी फ़ाइल में JSON डेटा लिखने के लिए परिभाषित करता है - जो एक डिस्क फ़ाइल या बाइट स्ट्रीम हो सकता है और उनसे डेटा वापस पढ़ सकता है।

डंप ()

यह फ़ंक्शन पायथन ऑब्जेक्ट डेटा को JSON प्रारूप में एन्कोड करता है और इसे एक फ़ाइल में लिखता है। फ़ाइल में लिखने की अनुमति होनी चाहिए।

>>> data=['Rakesh', {'marks': (50, 60, 70)}]
>>> fp=open('json.txt','w')
>>> json.dump(data,fp)
>>> fp.close()

यह कोड वर्तमान निर्देशिका में 'json.txt' बनाएगा। यह सामग्री को इस प्रकार दिखाता है

["Rakesh", {"marks": [50, 60, 70]}]

लोड ()

यह फ़ंक्शन फ़ाइल से JSON डेटा लोड करता है और इससे पायथन ऑब्जेक्ट का निर्माण करता है। फ़ाइल को पढ़ने की अनुमति के साथ खोला जाना चाहिए।

>>> fp=open('json.txt','r')
>>> ret=json.load(fp)
>>> ret
['Rakesh', {'marks': [50, 60, 70]}]
>>> fp.close()

यह लेख json मॉड्यूल में महत्वपूर्ण कार्यों को शामिल करता है।


  1. पायथन कोड की पैकेजिंग और प्रकाशन?

    पायथन पैकेज बनाने या प्रकाशित करने का एक बहुत ही सरल तरीका प्रदान करता है। पायथन में पैकेज प्रबंधन विभिन्न उपकरणों के माध्यम से उपलब्ध है- पिप- यह पसंदीदा विकल्पों में से एक बना हुआ है क्योंकि यह ऑपरेटिंग सिस्टम में सॉफ़्टवेयर पैकेज के किसी भी मैन्युअल इंस्टॉल और अपडेट को वस्तुतः समाप्त कर देता

  1. पायथन डिक्शनरी को JSON फॉर्मेट में कैसे प्रिंट करें?

    JSON का मतलब जावास्क्रिप्ट स्टैंडर्ड ऑब्जेक्ट नोटेशन है। जेसन नामक पायथन मॉड्यूल एक JSON एन्कोडर/डिकोडर है। इस मॉड्यूल में डंप () फ़ंक्शन पायथन डिक्शनरी ऑब्जेक्ट का JSON स्ट्रिंग प्रतिनिधित्व देता है। D1={"pen":25, "pencil":10, "book":100, "sharpner":5, "

  1. पाइथन फ़ंक्शन से जेसन ऑब्जेक्ट कैसे वापस करें?

    हम दिए गए पायथन डिक्शनरी का उपयोग करते हुए एक पायथन फ़ंक्शन से एक json ऑब्जेक्ट लौटाते हैं। उदाहरण import json a = {'name':'Sarah', 'age': 24, 'isEmployed': True } # a python dictionary def retjson(): python2json = json.dumps(a) print python2json retjson() आउटपुट {&qu