JSON একটি জনপ্রিয় ডেটা ফরম্যাট যেটি স্ট্রাকচারড ডেটা সংরক্ষণের জন্য ব্যবহার হয়।
পাইথনে একটি অ্যাপ্লিকেশন বিল্ড করার সময়, আপনি সিদ্ধান্ত নিতে পারেন আপনার অ্যাপে JSON ব্যবহার করবেন। উদাহরণস্বরূপ, আপনি একটি JSON ফাইল থেকে ডেটা পড়তে চাইতে পারেন, বা JSON ফরম্যাটে সংরক্ষিত ডেটা একটি ফাইলে লেখতে চাইতে পারেন।
এই গাইডে, আমরা JSON ডেটা ফরম্যাটের বেসিকস, পাইথন json মডিউল কীভাবে ব্যবহার করতে হয়, এবং পাইথনে JSON নিয়ে কীভাবে কাজ করতে হয় সেটি ব্রেক ডাউন করব। এই টিউটোরিয়াল পড়া শেষ হলে, আপনি আপনার পাইথন প্রোগ্রামে JSON ব্যবহার করতে এক্সপার্ট হবেন!
JSON কী?
JSON, যেটি JavaScript Object Notation-এর সংক্ষিপ্ত রূপ, একটি ডেটা ফরম্যাট যেটি আপনাকে স্ট্রাকচারড ডেটা সংরক্ষণ করতে দেয়।
প্রায়শই, JSON একটি ওয়েব অ্যাপ্লিকেশনে সার্ভারের থেকে এবং সার্ভারে ডেটা পাঠাতে এবং আনতে ব্যবহার হয়। আপনি দেখতে পেয়ে থাকেন, উদাহরণস্বরূপ, অনেক API যেমন Fitbit API, বা Google Maps API ডেটা JSON ফরম্যাটে রিটার্ন করে।
এটি কারণ JSON ডেটা স্ট্যান্ডার্ডাইজড, স্ট্রাকচারড, এবং পড়তে সহজ।
পাইথনে একটি JSON রেকর্ডের উদাহরণ:
{ "name": "James Smith", "id": 202, "probation": False }
এই রেকর্ড তিনটি কী সংরক্ষণ করে, যেগুলো কলন (:) এর বাম পাশে, এবং তিনটি ভ্যালু, যেগুলো কলনের ডান পাশে সংরক্ষিত। প্রতিটি কী একটি ভ্যালুর সাথে বাউন্ড।
JSON ডেটা ফরম্যাটকে ডিকশনারির সাথে গুলিয়ে ফেলা উচিত নয়। যদিও এটি ডিকশনারির মতোই দেখতে পারে, JSON একটি ডেটা ফরম্যাট, যখন ডিকশনারি একটি ডেটা স্ট্রাকচার।
এর মানে, আপনি যদি আপনার JSON ডেটা একটি ডিকশনারিতে সংরক্ষণ করতে চান, তবে আপনাকে সেটিকে ডিকশনারিতে কনভার্ট করতে হবে; আপনি যদি একটি ডিকশনারি JSON হিসেবে সংরক্ষণ করতে চান, তবে আপনাকে সেটিকে JSON-এ কনভার্ট করতে হবে।
পাইথনে json ইম্পোর্ট করা
পাইথনে JSON অবজেক্ট নিয়ে কাজ শুরু করার আগে, আপনাকে পাইথন json মডিউল ইম্পোর্ট করতে হবে। এই মডিউলে অনেক ফাংশন আছে যা আপনাকে JSON ডেটা নিয়ে কাজ করতে দেয়।
JSON মডিউল ইম্পোর্ট করতে, আপনি এই স্টেটমেন্ট ব্যবহার করতে পারেন:
import json
এখন যেহেতু আমরা JSON মডিউল আপনার কোডে ইম্পোর্ট করেছি, আমরা এর ফাংশনগুলোর সাথে কাজ করা শুরু করতে পারি।
পাইথনে JSON পার্স করা
JSON ডেটা নিয়ে কাজ করার সময় আপনাকে পারফর্ম করতে হবে সবচেয়ে গুরুত্বপূর্ণ ফাংশনlerden একটি হলো JSON কে ডিকশনারিতে পার্স করা।
JSON কে ডিকশনারিতে পার্স করতে, আপনি json.loads() মেথড ব্যবহার করতে পারেন।
json.loads() একটি প্যারামিটার নেয়: যে JSON স্ট্রিং আপনি ডিকশনারিতে কনভার্ট করতে চান।
ধরি আপনার একটি JSON স্ট্রিং আছে যেটি একটি ইঞ্জিনিয়ারিং টিমে একজন কোডারকে অ্যাসাইন করা প্রজেক্টের ইনফরমেশন সংরক্ষণ করে। আপনি সেই JSON স্ট্রিংকে একটি ডিকশনারিতে কনভার্ট করতে চান। এতে করতে আপনি নিচের কোড ব্যবহার করতে পারেন:
import json
employee = "{'name': 'Linda Richardson', 'projects': ['Directory', 'Homepage']}"
employee_dictionary = json.loads(employee)
print(employee_dictionary)
print(employee_dictionary["name"])
আমাদের কোড রিটার্ন করে:
{'name': 'Linda Richardson', 'projects': ['Directory', 'Homepage']}
Linda Richardson
আমাদের কোড ব্রেক ডাউন করি। প্রথমে, আমরা json মডিউল আমাদের কোডে ইম্পোর্ট করি। তারপর, আমরা employee নামে একটি স্ট্রিং ডিক্লেয়ার করি যেটি আমাদের এমপ্লয়ি রেকর্ড JSON স্ট্রাকচারে সংরক্ষণ করে।
পরবর্তী, আমরা json.loads() ব্যবহার করি আমাদের employee স্ট্রিংকে JSON-এ কনভার্ট করতে। তারপর, আমরা আমাদের নতুন ডিকশনারি কনসোলে প্রিন্ট করি। আমরা name কী-এর ভ্যালুও কনসোলে প্রিন্ট করি।
আপনি দেখতে পাচ্ছেন, আমাদের ডিকশনারি আমাদের JSON স্ট্রিংএর মতোই দেখে। কিন্তু, এখন আমাদের ডেটা একটি ডিকশনারি হিসেবে সংরক্ষিত। আমরা বুঝতে পারছি কারণ, যখন আমরা "name" কী-এর ভ্যালু প্রিন্ট করি, "Linda Richardson" কনসোলে প্রিন্ট হয়।
ডিকশনারি কে JSON স্ট্রিং-এ কনভার্ট করা
যখন আপনি একটি ডিকশনারি নিয়ে কাজ করছেন, আপনি সেটিকে একটি JSON স্ট্রিং-এ কনভার্ট করতে চাইতে পারেন।
এটি একটি কমন অপারেশন কারণ, আপনি যখন একটি JSON ভ্যালু ফাইলে সংরক্ষণ করেন, সেটি স্ট্রিং হিসেবে ফরম্যাটেড থাকতে হবে। ডিকশনারি কে JSON-এ কনভার্ট করতে, আমরা json.dumps() মেথড ব্যবহার করতে পারি।
ধরি আমরা একটি ডিকশনারি কনভার্ট করতে চাই যেটি একটি এমপ্লয়ি সম্পর্কে ইনফরমেশন ধারণ করে JSON স্ট্রিং-এ। আমরা নিচের কোড ব্যবহার করে এটি করতে পারি:
import json
employee = {
"name": "Linda Richardson",
"id": 107,
"probation": False,
"department": "Sales"
}
employee_json = json.dumps(employee)
print(employee_json)
আমাদের কোড রিটার্ন করে:
'{"name": "Linda Richardson", "id": 107, "probation": false, "department": "Sales"}'
যদি আমাদের কোডের আউটপুট আমাদের অরিজিনাল ডিকশনারির মতোই দেখাও, আমাদের ডিকশনারি এখন একটি স্ট্রিং হিসেবে সংরক্ষিত।
JSON স্ট্রিং ফরম্যাট করা
json.dumps() মেথডে কয়েকটি প্যারামিটার থাকে যেগুলো আপনি ব্যবহার করতে পারেন ফাইনাল স্ট্রিং যা মেথডটি তৈরি করে সেটি পড়তে সহজ করতে।
indent প্যারামিটার আপনাকে ফাইনাল JSON স্ট্রিং-এ কতগুলো ইন্ডেন্ট থাকবে সেটি ডিফাইন করতে দেয়। ধরুন আপনি আপনার JSON স্ট্রিংর প্রতিটি লাইনে চারটি ইন্ডেন্ট যোগ করতে চান। আপনি নিচের json.dumps() স্টেটমেন্ট ব্যবহার করে এটি করতে পারেন:
employee_json = json.dumps(employee, indent=4)
এই স্টেটমেন্ট, আমাদের লাস্ট উদাহরণের সাথে কাম্বাইন হলে, রিটার্ন করবে:
{
"name": "Linda Richardson",
"id": 107,
"probation": false,
"department": "Sales"
}
আপনি JSON স্ট্রিং-এ ডেটার সেপারেটরও চেঞ্জ করতে পারেন। সেপারেটরদের ডিফল্ট ভ্যালু হলো ", " এবং ": ", যেটি মানে প্রতিটি অবজেক্ট কমা দিয়ে সেপারেট হবে, এবং প্রতিটি কী এবং ভ্যালু কলন দিয়ে সেপারেট হবে।
ধরি আমরা আমাদের কী এবং ভ্যালু ইকুয়ালস সাইন (=) দিয়ে সেপারেট করতে চাই, এবং ৪ ইন্ডেন্ট ব্যবহার করতে চাই। আমরা নিচের স্টেটমেন্ট ব্যবহার করে এটি করতে পারি:
employee_json = json.dumps(employee, indent=4, separators=(", ", " = "))
আমাদের কোড রিটার্ন করে:
{
"name" = "Linda Richardson",
"id" = 107,
"probation" = false,
"department" = "Sales"
}
আপনি দেখতে পাচ্ছেন, আমাদের JSON স্ট্রিং-এ প্রতিটি কী এবং ভ্যালু এখন ইকুয়ালস সাইন দিয়ে সেপারেটেড।
JSON ফাইল পড়া
পাইথনে একটি JSON ফাইল পড়তে, আপনি json.load() ব্যবহার করতে পারেন। এই মেথড একটি প্যারামিটার নেয়: যে ফাইল অবজেক্টটি আপনি আপনার প্রোগ্রামে পড়তে চান।
ধরি আমাদের employee.json নামে একটি ফাইল আছে যেটি আমরা আমাদের প্রোগ্রামে লোড করতে চাই। এই ফাইল কন্টেন্ট নিচেররকম:
{"name": "Linda Richardson", "id": 107, "probation": false}
আমরা নিচের কোড ব্যবহার করে এটি করতে পারি:
import json
with open('employee.json') as final_file:
employee = json.load(final_file)
print(employee)
আমাদের কোড রিটার্ন করে:
{"name": "Linda Richardson", "id": 107, "probation": false}
এই কোডে, আমরা প্রথম json লাইব্রেরি ইম্পোর্ট করি। তারপর, আমরা একটি with স্টেটমেন্ট ব্যবহার করি আমাদের employee.json ফাইল পড়তে। আমরা json.load() মেথড ব্যবহার করি আমাদের ফাইলের কন্টেন্ট, যেটি file ভেরিয়েবলে সংরক্ষিত, ডিকশনারিতে কনভার্ট করতে। তারপর, আমরা আমাদের ডিকশনারির ভ্যালু প্রিন্ট আউট করি।
JSON ফাইলে লেখা
আপনি json.dump() মেথড ব্যবহার করে পাইথনে JSON ফাইলে লিখতে পারেন।
json.dump() মেথড দুটি প্যারামিটার নেয়: যে ডিকশনারি আপনি ফাইলে লিখতে চান, এবং যে ফাইল অবজেক্টে আপনি আপনার ডিকশনারি লিখতে চান।
ধরি আমরা আমাদের এমপ্লয়ির রেকর্ড JSON ভ্যালু হিসেবে একটি ফাইলে সংরক্ষণ করতে চাই। এই ফাইলের নাম হওয়া উচিত linda_employee.json। আমরা নিচের কোড ব্যবহার করে এটি করতে পারি:
import json
employee = {
"name": "Linda Richardson",
"id": 107,
"probation": False,
"department": "Sales"
}
with open('linda_employee.json', 'w') as final_file:
json.dump(employee, final_file)
আমাদের কোড ব্রেক ডাউন করি। প্রথমে, আমরা json মডিউল আমাদের প্রোগ্রামে ইম্পোর্ট করি। তারপর, আমরা একটি ভেরিয়েবল ডিক্লেয়ার করি যেটি লিন্ডা রিচার্ডসন নামক একটি এমপ্লয়ি সম্পর্কে ইনফরমেশন ডিকশনারি স্ট্রাকচারে সংরক্ষণ করে।
পরবর্তী, আমরা "w" ফ্ল্যাগ দিয়ে একটি "with" স্টেটমেন্ট ব্যবহার করি linda_employee.json নামে একটি ফাইল প্রিপেয়ার করতে যাতে আমরা সেখানে লিখতে পারি। তারপর আমরা json.dump() ব্যবহার করি আমাদের employee ডিকশনারি কে একটি JSON স্ট্রিং-এ কনভার্ট করতে এবং আমাদের final_file অবজেক্টে সংরক্ষণ করতে।
যখন এই প্রোগ্রাম রান হবে, আমাদের employee ডিকশনারির কন্টেন্ট linda_employee.json ফাইলে লেখা হবে। এই ফাইলের ফাইনাল কন্টেন্ট:
{"name": "Linda Richardson", "id": 107, "probation": false, "department": "Sales"}
উপসংহার
পাইথন json মডিউল আপনাকে JSON ডেটা পড়তে এবং ম্যানিপুলেট করতে দেয়।
json মডিউল ব্যবহার করে, আপনি:
- ফাইল থেকে JSON পড়তে পারেন
- ডিকশনারি কে JSON-এ কনভার্ট করতে পারেন
- JSON কে ডিকশনারিতে কনভার্ট করতে পারেন
- JSON স্ট্রিং ফাইলে লিখতে পারেন
এই টিউটোরিয়ালে, আমরা এক্সপ্লোর করেছি কীভাবে json মডিউল ব্যবহার করে এই সকল অপারেশন পারফর্ম করা যায়। এখন আপনি পাইথনে JSON ডেটা নিয়ে প্রফেশনালের মতো কাজ শুরু করতে পারেন!
আপনি কী পাইথনে কোডিং শিখতে আগ্রহী? আজই ফ্রি Career Karma অ্যাপ ডাউনলোড করুন টপ লার্নিং রিসোর্স আনলক করতে এবং ট্রেনিং প্রোগ্রাম ডিসকভার করতে যেগুলো আপনাকে পাইথন মাস্টার করতে সাহায্য করতে পারে।