बस एक सरल उदाहरण जोड़ने जा रहा है कि सभी ने क्या समझाया है,
json.load ()
json.loadfileउदाहरण के लिए, किसी फ़ाइल को स्वयं सत्यापित कर सकता है अर्थात यह एक वस्तु को स्वीकार करता है ,
# open a json file for reading and print content using json.load
with open("/xyz/json_data.json", "r") as content:
print(json.load(content))
उत्पादन होगा,
{u'event': {u'id': u'5206c7e2-da67-42da-9341-6ea403c632c7', u'name': u'Sufiyan Ghori'}}
अगर मैं json.loadsइसके बजाय एक फ़ाइल खोलने के लिए उपयोग करता हूं ,
# you cannot use json.loads on file object
with open("json_data.json", "r") as content:
print(json.loads(content))
मुझे यह त्रुटि मिलेगी:
TypeError: अपेक्षित स्ट्रिंग या बफर
json.loads ()
json.loads() deserialize string।
इसलिए उपयोग करने के लिए json.loadsमुझे read()फ़ंक्शन का उपयोग करके फ़ाइल की सामग्री को पास करना होगा , उदाहरण के लिए,
फ़ाइल की वापसी सामग्री के content.read()साथ उपयोग करना json.loads(),
with open("json_data.json", "r") as content:
print(json.loads(content.read()))
आउटपुट,
{u'event': {u'id': u'5206c7e2-da67-42da-9341-6ea403c632c7', u'name': u'Sufiyan Ghori'}}
ऐसा इसलिए है क्योंकि content.read()स्ट्रिंग का प्रकार है, यानी<type 'str'>
अगर मैं उपयोग json.load()करता content.read()हूं, तो मुझे त्रुटि मिलेगी,
with open("json_data.json", "r") as content:
print(json.load(content.read()))
देता है,
गुण: 'str' ऑब्जेक्ट में कोई विशेषता नहीं है 'पढ़ा'
तो, अब आप json.loaddeserialze फ़ाइल को जानते हैं और json.loadsएक स्ट्रिंग को deserialize करते हैं।
एक और उदाहरण,
sys.stdinवापसी fileवस्तु, इसलिए यदि मैं करता print(json.load(sys.stdin))हूं, तो मुझे वास्तविक जोंस डेटा मिलेगा,
cat json_data.json | ./test.py
{u'event': {u'id': u'5206c7e2-da67-42da-9341-6ea403c632c7', u'name': u'Sufiyan Ghori'}}
यदि मैं उपयोग करना चाहता हूं json.loads(), तो मैं print(json.loads(sys.stdin.read()))इसके बजाय करूंगा ।
json.loads(s, *)- deserializes(एकstr,bytesयाbytearrayउदाहरण के लिए एक JSON दस्तावेज़ युक्त) - docs.python.org/3.6/library/json.html