Python JSON: एनकोड (डंप), डिकोड (लोड) और JSON फ़ाइल पढ़ें
⚡ स्मार्ट सारांश
JSON डेटा के आदान-प्रदान के लिए एक हल्का टेक्स्ट फॉर्मेट है, और Pythonइसका बिल्ट-इन JSON मॉड्यूल इसे आसानी से पढ़ता और लिखता है। यहाँ आप इसे एनकोड करना सीखेंगे। Python dumps() फ़ंक्शन का उपयोग करके ऑब्जेक्ट्स को डिकोड करना और loads() फ़ंक्शन का उपयोग करके JSON को डिकोड करना, साथ ही फ़ाइल I/O और बहुत कुछ।
JSON क्या है? Python?
JSON in Python एक मानक प्रारूप है जो इससे प्रेरित है Javaनेटवर्क पर टेक्स्ट फ़ॉर्मेट में डेटा एक्सचेंज और डेटा ट्रांसफ़र के लिए स्क्रिप्ट। आम तौर पर, JSON स्ट्रिंग या टेक्स्ट फ़ॉर्मेट में होता है। इसका इस्तेमाल API और डेटाबेस द्वारा किया जा सकता है, और यह ऑब्जेक्ट को नाम/मूल्य जोड़े के रूप में दर्शाता है। JSON का मतलब है Javaस्क्रिप्ट ऑब्जेक्ट नोटेशन.
Python JSON सिंटैक्स:
JSON को कुंजी और मान युग्म के रूप में लिखा जाता है।
{
"Key": "Value",
"Key": "Value",
}
JSON बहुत समान है Python शब्दकोश। Python JSON का समर्थन करता है, और इसमें JSON के रूप में एक इनबिल्ट लाइब्रेरी है।
JSON लाइब्रेरी Python
'मार्शल' तथा 'अचार' के बाहरी मॉड्यूल Python का एक संस्करण बनाए रखें JSON Python लाइब्रेरी में JSON के साथ काम करना Python JSON से संबंधित ऑपरेशन जैसे एन्कोडिंग और डिकोडिंग करने के लिए, आपको सबसे पहले आयात JSON लाइब्रेरी और उसके लिए आपके .py फ़ाइल,
import json
JSON में निम्नलिखित विधियाँ उपलब्ध हैं Python मॉड्यूल
| विधि | विवरण |
|---|---|
| डंप() | JSON ऑब्जेक्ट्स को एनकोड करना |
| गंदी जगह() | फ़ाइल पर एनकोडेड स्ट्रिंग लेखन |
| भार() | JSON स्ट्रिंग को डिकोड करें |
| भार() | JSON फ़ाइल पढ़ते समय डिकोड करें |
Python JSON में (एन्कोडिंग)
JSON पुस्तकालय Python निम्नलिखित अनुवाद करता है Python डिफ़ॉल्ट रूप से JSON ऑब्जेक्ट में ऑब्जेक्ट्स
| Python | JSON |
|---|---|
| dict | वस्तु |
| सूची | ऐरे |
| यूनिकोड | तार |
| संख्या – पूर्णांक, लम्बा | संख्या – int |
| नाव | संख्या – वास्तविक |
| यह सच है | यह सच है |
| झूठा | झूठा |
| कोई नहीं | अशक्त |
परिवर्तित Python डेटा को JSON में बदलने की प्रक्रिया को एनकोडिंग ऑपरेशन कहा जाता है। एनकोडिंग JSON लाइब्रेरी विधि की मदद से की जाती है – डंप()
JSON डम्प्स() में Python
json.dumps () in Python एक विधि है जो शब्दकोश ऑब्जेक्ट्स को परिवर्तित करती है Python JSON स्ट्रिंग डेटा प्रारूप में। यह तब उपयोगी होता है जब पार्सिंग, प्रिंटिंग आदि जैसे ऑपरेशन के लिए ऑब्जेक्ट को स्ट्रिंग प्रारूप में होना आवश्यक होता है।
अब चलिए अपना पहला json.dumps एनकोडिंग उदाहरण निष्पादित करते हैं Python:
import json x = { "name": "Ken", "age": 45, "married": True, "children": ("Alice","Bob"), "pets": ['Dog'], "cars": [ {"model": "Audi A1", "mpg": 15.1}, {"model": "Zeep Compass", "mpg": 18.1} ] } # sorting result in asscending order by keys: sorted_string = json.dumps(x, indent=4, sort_keys=True) print(sorted_string)
आउटपुट:
{"person": {"name": "Kenn", "sex": "male", "age": 28}})
आइये इसका एक उदाहरण देखें Python उसी फ़ंक्शन का उपयोग करके शब्दकोश की JSON फ़ाइल बनाने के लिए फ़ाइल में JSON लिखें गंदी जगह()
# here we create new data_file.json file with write mode using file i/o operation with open('json_file.json', "w") as file_write: # write json data into file json.dump(person_data, file_write)
आउटपुट:
दिखाने के लिए कुछ नहीं है…आपके सिस्टम में json_file.json बनाया गया है। आप नीचे दिखाए अनुसार उस फ़ाइल को जाँच सकते हैं फ़ाइल में JSON लिखें Python उदाहरण।
JSON से Python (डिकोडिंग)
JSON स्ट्रिंग डिकोडिंग इनबिल्ट विधि की मदद से किया जाता है json.loads () & json.लोड() JSON लाइब्रेरी का Python. यहाँ अनुवाद तालिका JSON ऑब्जेक्ट्स का उदाहरण दिखाती है Python वस्तुओं जो डिकोडिंग करने में सहायक होते हैं Python JSON स्ट्रिंग का.
| JSON | Python |
|---|---|
| वस्तु | dict |
| ऐरे | सूची |
| तार | यूनिकोड |
| संख्या – int | संख्या – पूर्णांक, लम्बा |
| संख्या – वास्तविक | नाव |
| यह सच है | यह सच है |
| झूठा | झूठा |
| अशक्त | कोई नहीं |
आइए एक बुनियादी पार्स JSON देखें Python की मदद से डिकोडिंग का उदाहरण json.लोड समारोह,
import json # json library imported # json data string person_data = '{ "person": { "name": "Kenn", "sex": "male", "age": 28}}' # Decoding or converting JSON format in dictionary using loads() dict_obj = json.loads(person_data) print(dict_obj) # check type of dict_obj print("Type of dict_obj", type(dict_obj)) # get human object details print("Person......", dict_obj.get('person'))
आउटपुट:
{'person': {'name': 'Kenn', 'sex': 'male', 'age': 28}}
Type of dict_obj <class 'dict'>
Person...... {'name': 'John', 'sex': 'male'}
JSON फ़ाइल को डिकोड करना या JSON फ़ाइल को पार्स करना Python
अब हम सीखेंगे कि JSON फाइल को कैसे पढ़ा जाए। Python साथ में Python JSON पार्स उदाहरण:
नोट: JSON फ़ाइल को डिकोड करना फ़ाइल इनपुट/आउटपुट (I/O) से संबंधित ऑपरेशन है। JSON फ़ाइल आपके सिस्टम पर उस स्थान पर मौजूद होनी चाहिए जिसका आपने अपने प्रोग्राम में उल्लेख किया है।
Python JSON फ़ाइल पढ़ें उदाहरण:
import json #File I/O Open function for read data from JSON File with open('X:/json_file.json') as file_object: # store file data in object data = json.load(file_object) print(data)
यहाँ डेटा एक शब्दकोश वस्तु है Python जैसा कि ऊपर दिए गए JSON फ़ाइल में दिखाया गया है Python उदाहरण।
आउटपुट:
{'person': {'name': 'Kenn', 'sex': 'male', 'age': 28}}
कॉम्पैक्ट एनकोडिंग Python
जब आपको अपनी JSON फ़ाइल का आकार कम करने की आवश्यकता हो, तो आप कॉम्पैक्ट एन्कोडिंग का उपयोग कर सकते हैं Python.
उदाहरण,
import json # Create a List that contains dictionary lst = ['a', 'b', 'c',{'4': 5, '6': 7}] # separator used for compact representation of JSON. # Use of ',' to identify list items # Use of ':' to identify key and value in dictionary compact_obj = json.dumps(lst, separators=(',', ':')) print(compact_obj)
आउटपुट:
'["a", "b", "c", {"4": 5, "6": 7}]' ** Here output of JSON is represented in a single line which is the most compact representation by removing the space character from compact_obj **
JSON कोड को प्रारूपित करें (सुंदर प्रिंट)
- इसका उद्देश्य मानवीय समझ के लिए अच्छी तरह से प्रारूपित कोड लिखना है। सुंदर मुद्रण की मदद से कोई भी व्यक्ति आसानी से कोड को समझ सकता है।
उदाहरण:
import json dic = { 'a': 4, 'b': 5 } ''' To format the code use of indent and 4 shows number of space and use of separator is not necessary but standard way to write code of particular function. ''' formatted_obj = json.dumps(dic, indent=4, separators=(',', ': ')) print(formatted_obj)
आउटपुट:
{
"a" : 4,
"b" : 5
}
इसे बेहतर ढंग से समझने के लिए, इंडेंट को 40 में बदलें और आउटपुट देखें-
JSON कोड को क्रमित करना:
सॉर्ट_कीज़ में विशेषता है Python डंप फ़ंक्शन का तर्क JSON में कुंजी को आरोही क्रम में सॉर्ट करेगा। sort_keys तर्क एक बूलियन विशेषता है। जब यह सत्य होता है तो सॉर्टिंग की अनुमति होती है अन्यथा नहीं। आइए समझते हैं Python स्ट्रिंग से JSON सॉर्टिंग उदाहरण.
उदाहरण,
import json x = { "name": "Ken", "age": 45, "married": True, "children": ("Alice", "Bob"), "pets": [ 'Dog' ], "cars": [ {"model": "Audi A1", "mpg": 15.1}, {"model": "Zeep Compass", "mpg": 18.1} ], } # sorting result in asscending order by keys: sorted_string = json.dumps(x, indent=4, sort_keys=True) print(sorted_string)
आउटपुट:
{
"age": 45,
"cars": [ {
"model": "Audi A1",
"mpg": 15.1
},
{
"model": "Zeep Compass",
"mpg": 18.1
}
],
"children": [ "Alice",
"Bob"
],
"married": true,
"name": "Ken",
"pets": [
"Dog"
]
}
जैसा कि आप देख सकते हैं कि कुंजियों में आयु, कार, बच्चे आदि को आरोही क्रम में व्यवस्थित किया गया है।
जटिल ऑब्जेक्ट एन्कोडिंग Python
एक जटिल वस्तु के दो अलग-अलग भाग होते हैं
- वास्तविक भाग
- काल्पनिक भाग
उदाहरण: 3 +2i
किसी जटिल ऑब्जेक्ट की एनकोडिंग करने से पहले, आपको यह जांचना होगा कि कोई वेरिएबल जटिल है या नहीं। आपको एक ऐसा फ़ंक्शन बनाने की ज़रूरत है जो इंस्टेंस विधि का उपयोग करके किसी वेरिएबल में संग्रहीत मान की जांच करता है।
आइए, यह जांचने के लिए विशिष्ट फ़ंक्शन बनाएं कि ऑब्जेक्ट जटिल है या एन्कोडिंग के लिए योग्य है।
import json # create function to check instance is complex or not def complex_encode(object): # check using isinstance method if isinstance(object, complex): return [object.real, object.imag] # raised error using exception handling if object is not complex raise TypeError(repr(object) + " is not JSON serialized") # perform json encoding by passing parameter complex_obj = json.dumps(4 + 5j, default=complex_encode) print(complex_obj)
आउटपुट:
'[4.0, 5.0]'
जटिल JSON ऑब्जेक्ट डिकोडिंग Python
JSON में जटिल ऑब्जेक्ट को डिकोड करने के लिए, object_hook पैरामीटर का उपयोग करें जो यह जाँचता है कि JSON स्ट्रिंग में जटिल ऑब्जेक्ट है या नहीं। आइए स्ट्रिंग से JSON को समझते हैं Python उदाहरण,
import json # function check JSON string contains complex object def is_complex(objct): if '__complex__' in objct: return complex(objct['real'], objct['img']) return objct # use of json loads method with object_hook for check object complex or not complex_object =json.loads('{"__complex__": true, "real": 4, "img": 5}', object_hook = is_complex) #here we not passed complex object so it's convert into dictionary simple_object =json.loads('{"real": 6, "img": 7}', object_hook = is_complex) print("Complex_object......",complex_object) print("Without_complex_object......",simple_object)
आउटपुट:
Complex_object...... (4+5j)
Without_complex_object...... {'real': 6, 'img': 7}
JSON सीरियलाइज़ेशन क्लास JSONEncoder का अवलोकन
JSONEncoder वर्ग का उपयोग किसी भी क्रमांकन के लिए किया जाता है Python एनकोडिंग करते समय ऑब्जेक्ट। इसमें एनकोडिंग के तीन अलग-अलग तरीके शामिल हैं जो हैं
- डिफ़ॉल्ट(o) - उपवर्ग में कार्यान्वित किया गया और serialize ऑब्जेक्ट को वापस लौटाया गया o वस्तु।
- एनकोड(o) – JSON डंप के समान Python विधि JSON स्ट्रिंग लौटाती है Python डेटा संरचना।
- iterencode(o) - स्ट्रिंग को एक-एक करके प्रस्तुत करें और ऑब्जेक्ट o को एनकोड करें।
JSONEncoder क्लास की encode() विधि की सहायता से हम किसी भी फाइल को एनकोड कर सकते हैं। Python नीचे दिखाए अनुसार वस्तु Python JSON एनकोडर उदाहरण.
# import JSONEncoder class from json from json.encoder import JSONEncoder colour_dict = { "colour": ["red", "yellow", "green" ]} # directly called encode method of JSON JSONEncoder().encode(colour_dict)
आउटपुट:
'{"colour": ["red", "yellow", "green"]}'
JSON डिसेरिएलाइज़ेशन क्लास JSONDecoder का अवलोकन
JSONDecoder वर्ग का उपयोग किसी भी डिसेरिएलाइजेशन के लिए किया जाता है Python डिकोडिंग करते समय ऑब्जेक्ट। इसमें डिकोडिंग के तीन अलग-अलग तरीके शामिल हैं जो हैं
- डिफ़ॉल्ट(o) - उपवर्ग में कार्यान्वित किया गया और डीसेरिएलाइज्ड ऑब्जेक्ट लौटाया गया o वस्तु।
- डिकोड(o) – json.loads() विधि रिटर्न के समान Python JSON स्ट्रिंग या डेटा की डेटा संरचना.
- raw_decode(o) - प्रतिनिधित्व करना Python शब्दकोश को एक-एक करके खोलें और ऑब्जेक्ट o को डिकोड करें।
JSONDecoder क्लास की decode() विधि की सहायता से, हम JSON स्ट्रिंग को भी डिकोड कर सकते हैं जैसा कि नीचे दिखाया गया है Python JSON डिकोडर उदाहरण.
import json # import JSONDecoder class from json from json.decoder import JSONDecoder colour_string = '{ "colour": ["red", "yellow"]}' # directly called decode method of JSON JSONDecoder().decode(colour_string)
आउटपुट:
{'colour': ['red', 'yellow']}
JSON डेटा को डिकोड करना URLवास्तविक जीवन का उदाहरण
हम निर्दिष्ट स्रोत से सिटीबाइक एनवाईसी (बाइक शेयरिंग सिस्टम) का डेटा प्राप्त करेंगे। URL(https://gbfs.citibikenyc.com/gbfs/2.3/gbfs.json) और शब्दकोश प्रारूप में परिवर्तित करें.
Python फ़ाइल से JSON लोड करें उदाहरण:
नोट:- सुनिश्चित करें कि आपके कंप्यूटर में अनुरोध लाइब्रेरी पहले से ही स्थापित है। Python, यदि नहीं तो टर्मिनल या CMD खोलें और टाइप करें
- (के लिये Python 3 या उससे अधिक) pip3 स्थापना अनुरोध
import json import requests # get JSON string data from CityBike NYC using web requests library json_response= requests.get("https://gbfs.citibikenyc.com/gbfs/2.3/gbfs.json") # check type of json_response object print(type(json_response.text)) # load data in loads() function of json library bike_dict = json.loads(json_response.text) #check type of news_dict print(type(bike_dict)) # now get stationBeanList key data from dict print(bike_dict['stationBeanList'][0])
आउटपुट:
<class 'str'> <class 'dict'> { 'id': 487, 'stationName': 'E 20 St & FDR Drive', 'availableDocks': 24, 'totalDocks': 34, 'latitude': 40.73314259, 'longitude': -73.97573881, 'statusValue': 'In Service', 'statusKey': 1, 'availableBikes': 9, 'stAddress1': 'E 20 St & FDR Drive', 'stAddress2': '', 'city': '', 'postalCode': '', 'location': '', 'altitude': '', 'testStation': False, 'lastCommunicationTime': '2018-12-11 10:59:09 PM', 'landMark': '' }
JSON लाइब्रेरी से संबंधित अपवाद Python:
- वर्ग json.JSONडिकोडरत्रुटि डिकोडिंग ऑपरेशन से संबंधित अपवाद को संभालता है। और यह इसका एक उपवर्ग है मानत्रुटि.
- अपवाद - json.JSONDecoderError(संदेश, दस्तावेज़)
- अपवाद के पैरामीटर हैं,
- msg – असंरूपित त्रुटि संदेश
- doc – JSON दस्तावेज़ पार्स किए गए
- pos - दस्तावेज़ के विफल होने पर उसका सूचकांक आरंभ करें
- lineno - लाइन नहीं दिखाता है pos के अनुरूप
- कोलन - स्तंभ संख्या स्थिति के अनुरूप है
Python फ़ाइल से JSON लोड करें उदाहरण:
import json #File I/O Open function for read data from JSON File data = {} #Define Empty Dictionary Object try: with open('json_file_name.json') as file_object: data = json.load(file_object) except ValueError: print("Bad JSON file format, Change JSON File")
अनंत और NaN Numbers in Python
JSON डेटा इंटरचेंज फॉर्मेट (RFC - टिप्पणियों के लिए अनुरोध) अनंत या नेन मान की अनुमति नहीं देता है लेकिन इसमें कोई प्रतिबंध नहीं है Python- अनंत और Nan मान से संबंधित ऑपरेशन करने के लिए JSON लाइब्रेरी। यदि JSON को अनंत और Nan डेटाटाइप मिलता है तो इसे शाब्दिक में परिवर्तित कर दिया जाता है।
उदाहरण,
import json # pass float Infinite value infinite_json = json.dumps(float('inf')) # check infinite json type print(infinite_json) print(type(infinite_json)) json_nan = json.dumps(float('nan')) print(json_nan) # pass json_string as Infinity infinite = json.loads('Infinity') print(infinite) # check type of Infinity print(type(infinite))
आउटपुट:
Infinity <class 'str'> NaN inf <class 'float'>
JSON स्ट्रिंग में दोहराई गई कुंजी
RFC निर्दिष्ट करता है कि JSON ऑब्जेक्ट में कुंजी नाम अद्वितीय होना चाहिए, लेकिन यह अनिवार्य नहीं है। Python JSON लाइब्रेरी JSON में दोहराए गए ऑब्जेक्ट का अपवाद नहीं उठाती है। यह सभी दोहराए गए कुंजी-मूल्य युग्म को अनदेखा करता है और उनमें से केवल अंतिम कुंजी-मूल्य युग्म पर विचार करता है।
- उदाहरण,
import json repeat_pair = '{"a": 1, "a": 2, "a": 3}' json.loads(repeat_pair)
आउटपुट:
{'a': 3}
JSON के साथ CLI (कमांड लाइन इंटरफ़ेस) Python
json.टूल JSON प्रीटी-प्रिंट सिंटैक्स को मान्य करने के लिए कमांड लाइन इंटरफ़ेस प्रदान करता है। आइए CLI का एक उदाहरण देखें
$ echo '{"name" : "Kings Authur" }' | python3 -m json.tool
आउटपुट:
{
"name": " Kings Authur "
}
JSON के लाभ Python
- कंटेनर और मूल्य (JSON से) के बीच वापस जाना आसान है Python और Python JSON में)
- मानव पठनीय (सुंदर-प्रिंट) JSON ऑब्जेक्ट
- डेटा हैंडलिंग में व्यापक रूप से उपयोग किया जाता है।
- एकल फ़ाइल में समान डेटा संरचना नहीं है।
JSON के कार्यान्वयन की सीमाएँ Python
- JSON रेंज के डिसेरिएलाइजर में तथा किसी संख्या की भविष्यवाणी में
- JSON स्ट्रिंग और JSON की सरणियों की अधिकतम लंबाई और ऑब्जेक्ट के नेस्टिंग स्तर।
Python JSON चीट शीट
| Python JSON फ़ंक्शन | विवरण |
|---|---|
| json.dumps(व्यक्ति_डेटा) | JSON ऑब्जेक्ट बनाएं |
| json.dump(व्यक्ति_डेटा, फ़ाइल_लेखन) | फ़ाइल I/O का उपयोग करके JSON फ़ाइल बनाएँ Python |
| कॉम्पैक्ट_ऑब्जेक्ट = json.dumps(डेटा, विभाजक=(',',':')) | विभाजक का उपयोग करके JSON ऑब्जेक्ट से स्पेस कैरेक्टर हटाकर JSON ऑब्जेक्ट को कॉम्पैक्ट करें |
| formatted_obj = json.dumps(dic, indent=4, विभाजक=(',', ': ')) | इंडेंट का उपयोग करके JSON कोड को फ़ॉर्मेट करना |
| सॉर्टेड_स्ट्रिंग = json.dumps(x, इंडेंट=4, सॉर्ट_कीज़=सत्य) | JSON ऑब्जेक्ट कुंजी को वर्णानुक्रम से सॉर्ट करना |
| complex_obj = json.dumps(4 + 5j, डिफ़ॉल्ट=complex_encode) | Python JSON में जटिल ऑब्जेक्ट एनकोडिंग |
| JSONEncoder().encode(colour_dict) | क्रमांकन के लिए JSONEncoder वर्ग का उपयोग |
| json.लोड(डेटा_स्ट्रिंग) | JSON स्ट्रिंग को डिकोड करना Python json.loads() फ़ंक्शन का उपयोग करके शब्दकोश |
| json.loads('{“__complex__”: सत्य, “वास्तविक”: 4, “img”: 5}', ऑब्जेक्ट_हुक = is_complex) | जटिल JSON ऑब्जेक्ट को डिकोड करना Python |
| JSONDecoder().डिकोड(रंग_स्ट्रिंग) | JSON डिकोडिंग का उपयोग Python डिसेरीयलाइज़ेशन के साथ |









