একটি JSON নমুনাকে টাইপ হিন্টসহ Python dataclass, Pydantic মডেল বা TypedDict-এ রূপান্তর করুন
আপনার ব্রাউজারে চলে। আপনি যা লেখেন তা কোথাও পাঠানো হয় না। যাচাই করা হয়েছে 16 অক্টোবর, 2026।একটি JSON নমুনা পেস্ট করুন আর টাইপ হিন্টসহ Python dataclass, Pydantic v2 মডেল বা TypedDict পান। পূর্ণসংখ্যা হয় int, আর যেকোনো দশমিক একটি ফিল্ডকে float করে; null বা অনুপস্থিত মান হয় str | None, ডিফল্ট None সহ, এবং 3টি ক্লাস স্টাইলই একই অনুমান ব্যবহার করে।
এই পৃষ্ঠাটি ইংরেজি মূল লেখা থেকে যন্ত্রের সাহায্যে অনুবাদ করা হয়েছে। এই অনুবাদটি এখনও কোনো মানুষ পর্যালোচনা করেননি, তাই ইংরেজি সংস্করণটিকেই নির্ভরযোগ্য ধরুন। ইংরেজি মূল লেখাটি পড়ুন
বাঁ দিকের বাক্সে একটি JSON নমুনা পেস্ট করুন, যেমন একটি API রেসপন্স।
লেখার সাথে সাথে Python ক্লাস দেখা যায়: প্রতিটি অবজেক্টের জন্য একটি ক্লাস, int, float, list[str] ও str | None-এর মতো টাইপ হিন্টসহ।
dataclass, Pydantic বা TypedDict বেছে নিন, আর আপনার প্রজেক্ট 3.10-এর চেয়ে পুরোনো হলে Python 3.9 টাইপিং।
কপি করুন চাপুন, অথবা models.py সংরক্ষণ করতে ডাউনলোড চাপুন।
Python JSON-কে ডিকশনারি হিসেবে পড়ে, আর টাইপ হিন্টসহ একটি ক্লাসই একটি এডিটর, টাইপ চেকার বা Pydantic-কে ভুল বানানের কী বা ভুল টাইপ ধরতে দেয়। এই কনভার্টার একটি নমুনা থেকে সেই ক্লাসগুলো লেখে, তাই একটি লম্বা API রেসপন্স এক পেস্টেই টাইপ করা Python হয়ে যায়।
টাইপ কীভাবে বেছে নেওয়া হয়।
| JSON মান | Python টাইপ |
|---|---|
| "text" | str |
| true / false | bool |
| 42 (শুধু পূর্ণসংখ্যা) | int |
| 4.5 (কোনো দশমিক দেখা গেলে) | float |
| null, সাথে আরেকটি টাইপ | str | None, অথবা Optional[str] |
| শুধু null, বা মিশ্র ধরন | Any |
| [ ... ] | list[...] |
| { } ফাঁকা | dict[str, Any] |
| { ... } | নিজস্ব একটি ক্লাস |
অবজেক্টের অ্যারে। একটি অ্যারের সব অবজেক্ট মিলে একটি ক্লাস হয়, তাই যে কী শুধু কয়েকটিতে আছে সেটিও থাকে, None অনুমোদিত টাইপ ও ডিফল্ট None সহ। হুবহু একই কী ও টাইপের দুটি অবজেক্ট একটি ক্লাস ভাগ করে নেয়।
তিনটি স্টাইল। dataclass-এর জন্য কিছু ইনস্টল করতে হয় না; ডিফল্টসহ ফিল্ডগুলো অন্যগুলোর পরে সরানো হয়, কারণ নইলে Python একটি TypeError দেয়। Pydantic মডেল snake_case অ্যাট্রিবিউট ব্যবহার করে, ভিন্নভাবে লেখা কী-এর জন্য Field(alias=...) সহ, যেমন userName বা first-name। TypedDict কী হুবহু রাখে এবং মাঝে মাঝে আসা কীগুলোকে NotRequired চিহ্নিত করে।
ক্রম ও নাম। ক্লাসগুলো আগে চাইল্ড দিয়ে লেখা হয়, তাই প্রতিটি নাম ব্যবহারের আগেই সংজ্ঞায়িত থাকে। class-এর মতো একটি কীওয়ার্ড হয় class_, আর যে কী একটি টাইপকে আড়াল করত, যেমন list, সেটিও একই আন্ডারস্কোর পায়।
প্রতিটি স্টাইল যাচাই করা হয়েছে আউটপুটটি Pydantic 2 সহ CPython-এ চালিয়ে এবং নমুনাটি ভ্যালিডেট করে। আপনি যা পেস্ট করেন তার কিছুই ব্রাউজারের বাইরে যায় না।
কনভার্টারে একটি JSON নমুনা পেস্ট করুন, পাশেই Python ক্লাস দেখা যাবে, প্রতিটি অবজেক্টের জন্য একটি, প্রতিটি অ্যাট্রিবিউটে টাইপ হিন্টসহ। সাধারণ ক্লাসের জন্য dataclass, যাচাইয়ের জন্য Pydantic, বা সাধারণ ডিকশনারি নিয়েই কাজ চালিয়ে যেতে TypedDict বেছে নিন, তারপর মডিউলটি আপনার প্রজেক্টে কপি করুন।
যে ডেটা আপনি নিজে তৈরি করেন তার জন্য dataclass উপযুক্ত এবং কোনো লাইব্রেরি লাগে না। বাইরের ডেটার জন্য, যেমন API রেসপন্স, Pydantic উপযুক্ত, কারণ এটি প্রতিটি মান যাচাই করে এবং নেস্টেড অবজেক্ট আপনার হয়ে রূপান্তর করে। TypedDict শুধু json.loads-এর ফেরত দেওয়া ডিকশনারিতে টাইপ হিন্ট যোগ করে, তাই রানটাইমে কোনো খরচ নেই।
PEP 8 অনুযায়ী Pydantic অ্যাট্রিবিউট snake_case-এ লেখা হয়, Field(alias="userName") সহ, যাতে ভ্যালিডেশন তখনও মূল কী পড়ে। TypedDict প্রতিটি কী হুবহু রাখে, আর কোনো কী বৈধ নাম না হলে ফাংশনাল সিনট্যাক্সে চলে যায়। dataclass বৈধ নামের কীগুলো রাখে এবং বাকিগুলোর কথা নোট করে।
যে কী নমুনায় null ছিল, বা অ্যারের কিছু অবজেক্টে নেই, তাতে None থাকতে পারে, তাই তার টাইপ হিন্ট সেটি অনুমোদন করে। অনুপস্থিত কী ডিফল্ট হিসেবে None-ও পায়, আর dataclass-এ সেই ফিল্ডগুলো শেষে চলে যায়, কারণ ডিফল্টসহ ফিল্ডের পরে ডিফল্ট ছাড়া ফিল্ড Python গ্রহণ করে না।
ডিফল্ট টাইপিং, যেমন list[str] ও str | None, Python 3.10 বা তার পরের সংস্করণ চায়। এর বদলে typing মডিউল থেকে Optional ও List পেতে Python 3.9 টাইপিং চালু করুন। TypedDict-এর NotRequired আসে typing_extensions থেকে, আর Python 3.11 থেকে এটি typing-এই আছে।
না। রূপান্তর আপনার ব্রাউজারেই চলে, কোনো সার্ভারে অনুরোধ যায় না, আর JSON সংরক্ষিত হয় না, তাই টোকেন বা ব্যক্তিগত তথ্যসহ API রেসপন্স আপনার ডিভাইসেই থাকে। ট্যাবটি বন্ধ করলে কিছুই থাকে না।
হার ও নিয়ম বদলায়; কোনো অঙ্কের ওপর নির্ভর করার আগে সূত্রটি দেখে নিন।
এখনও আটকে আছেন? JSON থেকে Python ক্লাস কনভার্টার সম্পর্কে প্রশ্ন করুন আর যিনি জানেন তিনিই উত্তর দিতে পারেন। কোনো অ্যাকাউন্ট লাগবে না।