JSON (जावा स्क्रिप्ट ऑब्जेक्ट नोटेशन) हल्का, अच्छी तरह से स्वीकृत डेटा इंटरचेंज फॉर्मेट है। पायथन में JSON फॉर्मेटिंग तकनीकों का उपयोग करके, हम JSON स्ट्रिंग्स को पायथन ऑब्जेक्ट्स में बदल सकते हैं, और पायथन ऑब्जेक्ट्स को JSON स्ट्रिंग्स में भी बदल सकते हैं।
इन कार्यक्षमताओं का उपयोग करने के लिए, हमें पायथन के json मॉड्यूल का उपयोग करने की आवश्यकता है। json मॉड्यूल पायथन स्टैंडर्ड लाइब्रेरी के साथ आता है। इसलिए सबसे पहले हमें इसे इम्पोर्ट करना होगा।
import json
पायथन ऑब्जेक्ट्स को JSON स्ट्रिंग में बदलना
json मॉड्यूल में dump(), और dumps() जैसे कुछ मेथड हैं जो पायथन ऑब्जेक्ट्स को JSON स्ट्रिंग्स में बदलने के लिए हैं। dump() मेथड दो तर्क लेता है, पहला ऑब्जेक्ट है, और दूसरा फ़ाइल ऑब्जेक्ट है। यह मेथड ऑब्जेक्ट को JSON फॉर्मेटेड स्ट्रीम के रूप में फ़ाइल ऑब्जेक्ट्स में सीरियलाइज़ करता है। इसी तरह dumps() मेथड केवल एक तर्क लेता है। तर्क ऑब्जेक्ट है। यह ऑब्जेक्ट्स को JSON स्ट्रिंग में बदलता है।
उदाहरण कोड
import json
from io import StringIO
str_io_obj = StringIO()
# StringIO बनाने के लिए JSON Dump का उपयोग
json.dump(["India", "Australia", "Brazil"], str_io_obj)
print('StringIO Object value: ' + str(str_io_obj.getvalue()))
my_json = {
"name": "Kalyan",
"age": 25,
"city": 'Delhi'
}
print(json.dumps(my_json, indent=4))
आउटपुट
StringIO Object value: ["India", "Australia", "Brazil"]
{
"name": "Kalyan",
"age": 25,
"city": "Delhi"
}
JSON स्ट्रिंग्स को पायथन ऑब्जेक्ट्स में बदलना
इस मामले में हम JSON स्ट्रिंग्स को डी-सीरियलाइज़ कर रहे हैं। दो अलग-अलग मेथड हैं। ये load() और loads() हैं। ये दोनों मेथड JSON फ़ाइल को तर्क के रूप में लेते हैं। load() फ़ाइल ऑब्जेक्ट्स डेटा से पायथन ऑब्जेक्ट्स में बदलता है, और loads() स्ट्रिंग टाइप डेटा से बदलता है।
उदाहरण कोड
import json
from io import StringIO
str_io_obj = StringIO('["xyz", "abc", "xyz", "pqr"]')
# StringIO से लोड
print('Load: ' + str(json.load(str_io_obj)))
print('String to Json: ' + str(json.loads('{"xyz": 1, "abc": 2, "xyz": 3, "pqr": 4}')))
आउटपुट
Load: ['xyz', 'abc', 'xyz', 'pqr']
String to Json: {'xyz': 3, 'abc': 2, 'pqr': 4}
पायथन में JSON एनकोडर और डिकोडर क्लासेस
JSONEncoder क्लास का उपयोग पायथन ऑब्जेक्ट्स को JSON फॉर्मेट में बदलने के लिए किया जाता है। यहाँ इस उदाहरण में हम देखेंगे कि एक कॉम्प्लेक्स नंबर ऑब्जेक्ट को JSONEncoder का उपयोग करके JSON टाइप ऑब्जेक्ट में कैसे बदला जा सकता है।
उदाहरण कोड
import json
class Comp_Encoder(json.JSONEncoder):
def default(self, comp_obj):
if isinstance(comp_obj, complex):
return [comp_obj.real, comp_obj.imag]
return json.JSONEncoder.default(self, comp_obj)
print(json.dumps(5+8j, cls=Comp_Encoder))
आउटपुट
[5.0, 8.0]
JSONDecoder क्लास रिवर्स एक्शन करती है।
उदाहरण कोड
import json
my_str = '{"Asim": 25, "Priyesh": 23, "Asim": "28"}'
# JSONDecoder का उपयोग करके JSON डिकोड करें
print(json.JSONDecoder().decode(my_str))
print(json.JSONDecoder().raw_decode(my_str))
आउटपुट
{'Asim': '28', 'Priyesh': 23}
({'Asim': '28', 'Priyesh': 23}, 44)