পাইথনের json মডিউল JSON ফাইল পার্স করে ডিকশনারি (dict) আকারে রিটার্ন করে। তারপর ডিকশনারির মতই কী-ভ্যালু এক্সেস বা লুপ করা যায়।
উদাহরণ JSON ফাইল (data.json)
{
"id": "file",
"value": "File",
"popup": {
"menuitem": [
{"value": "New", "onclick": "CreateNewDoc()"},
{"value": "Open", "onclick": "OpenDoc()"},
{"value": "Close", "onclick": "CloseDoc()"}
]
}
}
পাইথন কোড: লোড এবং লুপ
import json
with open('data.json') as f:
data = json.load(f)
# টপ-লেভেল কী-ভ্যালু লুপ
for k, v in data.items():
print(f"Key: {k}")
print(f"Value: {v}")
আউটপুট
Key: id
Value: file
Key: value
Value: File
Key: popup
Value: {'menuitem': [{'value': 'New', 'onclick': 'CreateNewDoc()'}, ...]}
নেস্টেড/রিকার্সিভ লুপ
সাব-কীগুলো লুপ করতে রিকার্সিভ ফাংশন লিখুন:
def print_nested(d, indent=0):
for k, v in d.items():
print(" " * indent + f"{k}:")
if isinstance(v, dict):
print_nested(v, indent + 1)
elif isinstance(v, list):
for item in v:
if isinstance(item, dict):
print_nested(item, indent + 1)
else:
print(" " * (indent + 1) + str(item))
else:
print(" " * (indent + 1) + str(v))
print_nested(data)
টিপ: with open(...) কনটেক্সট ম্যানেজার ব্যবহার করলে ফাইল অটোমেটিক বন্ধ হয়।