बस एक सरल उदाहरण जोड़ने जा रहा है कि सभी ने क्या समझाया है,
json.load ()
json.load
file
उदाहरण के लिए, किसी फ़ाइल को स्वयं सत्यापित कर सकता है अर्थात यह एक वस्तु को स्वीकार करता है ,
# 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.load
deserialze फ़ाइल को जानते हैं और 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