JSONDecodeError কী?
json.decoder.JSONDecodeError তখন উঠে যখন পাইথনের json.load() বা json.loads() ফাংশনটি অসম্পূর্ণ বা ভুল ফরম্যাটের JSON ডেটা পাড় করতে চায়। সাধারণ কারণ: মিসিং কোমা, কোলন, ব্রাকেট, বা কোটেশন মার্কস।
একটি বাস্তব উদাহরণ
ভুল JSON ফাইল (equipment.json)
[
{
"name": "Laura Harper",
"equip_id" "309" // ❌ কোলন (:) মিসিং
}
]
পাইথন কোড
import json
with open("equipment.json") as file:
data = json.load(file)
print("Data loaded successfully")
এরর মেসেজ
json.decoder.JSONDecodeError: Expecting ':' delimiter: line 3 column 16 (char 47)
এরর মেসেজে লাইন নম্বর, কলাম এবং ক্যারেক্টার পজিশন দেওয়া থাকে — যা ডিবাগিং-এ খুব সাহায্য করে।
সমাধান ১: JSON ফাইলটি ফিক্স করুন
ভুল লাইনটি সঠিক করুন:
"equip_id": "309", // ✅ কোলন যোগ করুন
সমাধান ২: try-except দিয়ে গ্রেসফুল হ্যান্ডলিং
import json
try:
with open("equipment.json") as file:
data = json.load(file)
print("Equipment data loaded successfully.")
except json.JSONDecodeError as e:
print(f"JSON Format Error: {e.msg} at line {e.lineno}, column {e.colno}")
# লগিং, ডিফল্ট ডেটা লোড, বা ইউজারকে নোটিফাই করুন
সঠিক JSON ফরম্যাটের নিয়মাবলী
- কী এবং স্ট্রিং ভ্যালুতে ডাবল কোটেশন (") ব্যবহার করুন (সিঙ্গেল কোট ' অনুমোদিত নয়)।
- সব কী-ভ্যালু পেয়ারের মধ্যে কোলন (:) থাকতে হবে।
- পেয়ারগুলো কোমা (,) দিয়ে আলাদা করতে হবে (লাস্ট পেয়ারের পরে কোমা নয়)।
- অবজেক্ট
{}এবং অ্যারে[]প্রপারলি বন্ধ করতে হবে।
প্রো টিপ: JSON Validator টুল ব্যবহার করুন
বড় JSON ফাইল ডিবাগ করতে JSONLint বা VS Code-এর বিল্ট-ইন JSON ভ্যালিডেটর ব্যবহার করুন।
নিষ্কর্ষ
JSONDecodeError সমাধানের দুটি পথ: (১) এরর মেসেজ পড়ে JSON ফাইলটি সঠিক করুন, (২) প্রোডাকশন কোডে try-except ব্যবহার করে প্রোগ্রাম ক্র্যাশ রোধ করুন এবং অর্থবহ ফিডব্যাক দিন।