অন্য প্রোগ্রামিং ল্যাঙ্গুয়েজের মত পাইথন JavaScript Object Notation (JSON) ডেটার সাথে ভালো কাজ করে। কিছু সোর্স থেকে ডেটা পুল করে অন্য ফাইলর মত কাজ করা যায়। JSON ফাইল প্রিটি প্রিন্ট করতে হলে এটি হেল্পফুল।
দুইভাবে JSON ফাইল প্রিটি প্রিন্ট করা দেখাবো। দুটোই টার্মিনাল ও কমান্ড লাইন ইনভল্ভড, কিন্তু একটি পাইথন নলেজ ছাড়াই সম্ভব।
প্রিটি প্রিন্ট কী (এবং JSON ফাইলের সাথে কেন ব্যবহার করবেন)
সংক্ষেপে: প্রিটি প্রিন্ট র ফরম্যাট ডেটা রিডেবল ফরম্যাটে রূপান্তর করে। অর্থাৎ, এটাকে প্রিটি বা সুন্দর করে।
সাধারণত প্রোগ্রামে পুল করা ফাইল হিউম্যান পার্স করার জন্য প্রিটি প্রিন্ট করা হয়। অন্য ফরম্যাট (JSON) এর ডেটা প্রায়শই minified থাকে—কোড থেকে সारा হোয়াইটস্পেস সরিয়ে কম্পিউটার পার্সিংয়ের জন্য লিনিয়ার করা হয়।
উদাহরণ: র ডাটাবেস ডেটা (minified) স্ক্রিপ্ট দিয়ে ইনডেন্টেশন ও ফরম্যাটিং অ্যাড করে এক্সপোর্ট করুন অন্যদের জন্য।
পাইথনে JSON ফাইল প্রিটি প্রিন্ট করা
উদাহরণে NeoVim ও বিল্ট-ইন :term কমান্ড ব্যবহার করা হয়েছে। কিন্তু টার্মিনাল থেকে সরাসরি পাইথন ইন্টারপ্রেটারেও করা যায়।
১. JSON ফাইল ডিফাইন করুন
প্রথমে JSON ডেটা প্রয়োজন। দুটি পথ: পাইথন স্ক্রিপ্টে ডেটা ডিফাইন করা বা JSON ফাইল থেকে। অধিকাংশ ডেটা ফাইল থেকে আসে, তাই সেটাই ফোকাস।
আমাদের কেসে JSON ডেটা ডাম্প আছে যেন কোনো ফরম্যাটিং নেই।
এই ফাইল addresses.json পাইথনে আনলে ফরম্যাট করা যায়। JSON ফাইল পাইথনে ব্যবহার করতে json মডিউল ইম্পোর্ট করুন। তারপর ফাইল ভেরিয়েবল হিসেবে ডিফাইন করুন।
এখন addresses.json নিয়ে কাজ শুরু করা যাবে।
২. পাইথনে JSON ফাইল ওপেন করুন
এরপর addresses.json ওপেন করুন। সাধারণ with open…as মেথড:
with open(json_file, 'r') as file: …
এই ব্লকের ভেতরে json.load() কল করে addresses.json পার্স করুন ভেরিয়েবলে অ্যাসাইন:
parsed = json.load(file)
এখন ফাইল রান করলে এক্সিকিউট হবে, কিন্তু টার্মিনালে রেজাল্ট দেখাবে না। থার্ড স্টেপে যান।
৩. JSON ফাইল প্রিটি প্রিন্ট করুন (সেটিংস এডজাস্ট সহ)
ফাইনাল স্টেপ: প্রিন্ট নিজেই। with open…as ব্লকে ইন্ডেন্টেড লাইন হিসেবে যোগ করুন:
print(json.dumps(parsed, indent=4, sort_keys=True))
ব্রেকডাউন: print ফাংশন json.dumps() কল করে। তিনটি আর্গুমেন্ট:
- প্রিটি প্রিন্ট করতে চাওয়া ফাইলের নাম
- ইন্ডেন্ট সাইজ
- JSON কী অনুযায়ী সর্ট হবে কিনা
রেডি হলে সেভ করে নতুন টার্মিনাল ওপেন করুন। প্রজেক্ট ফোল্ডারে নেভিগেট করে প্রোগ্রাম রান করুন।
টার্মিনাল আউটপুট আপনার সেটিংস অনুযায়ী JSON ফাইল প্রিটি প্রিন্ট করবে।
সাধারণত প্রিটি JSON কোথাও স্ট্রোর করা হয়, টার্মিনালে প্রিন্ট নয়। তবুও কমান্ড লাইন থেকে প্রিটি প্রিন্ট করার ওন-লাইন স্নিপেট আছে।
কমান্ড লাইন থেকে পাইথনে JSON প্রিটি প্রিন্ট
সুপার কুইক মেথড: টার্মিনাল আউটপুট হিসেবে JSON প্রিটি প্রিন্ট। নতুন টার্মিনাল, প্রজেক্ট ফোল্ডারে নেভিগেট, চালান:
cat addresses.json | python3 -m json.tool
addresses.json আপনার ফাইলনেমে চেঞ্জ করুন। রান করলে টার্মিনাল ফরম্যাটেড আউটপুট দেখাবে।
নো-কোড সলিউশন—অন-দ-ফ্লাই JSON প্রিটি প্রিন্ট, সেকেন্ডগুলোর মধ্যে।
উপসংহার
পাইথনে JSON প্রিটি প্রিন্টের বহু ইউজ। মিনিফাইড ডেটা রিডেবল বানাতে, এক্সপোর্ট করতে চাইলে। পাইথন json মডিউল ও with open…as ব্লক দিয়ে এটা করতে দেয়।
পাইথন আর কী কী করতে পারে জানতে চাইলে পাইথন লুপিং ও range() ফাংশন আর্টিকেল দেখুন। এই মেথড আপনার ডেইলি ওয়ার্কে সাহায্য করবে? কমেন্টে জানান!