প্রত্যেকে যা ব্যাখ্যা করেছে তার মধ্যে একটি সাধারণ উদাহরণ যুক্ত করতে চলেছে,
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))
আমি এই ত্রুটি পেতে হবে:
প্রকারের ত্রুটি: প্রত্যাশিত স্ট্রিং বা বাফার
json.loads ()
json.loads() স্ট্রিংকে ডিসিরিয়ালাইজ করুন।
সুতরাং ব্যবহার করার জন্য 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()))
দেয়,
AttributeError: 'str' অবজেক্টের 'পড়ুন' এর কোনও বৈশিষ্ট্য নেই
সুতরাং, এখন আপনি json.loadফাইলটি ডিসরিয়ালে জানলেন এবং json.loadsএকটি স্ট্রিং ডিসরিয়ালাইজ করুন ।
আরেকটি উদাহরণ,
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