কম্পিউটার টিউটোরিয়াল

পাইথনে মাল্টিপল কী/সাব-কী সহ JSON ফাইল লুপ করা

পাইথনের 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(...) কনটেক্সট ম্যানেজার ব্যবহার করলে ফাইল অটোমেটিক বন্ধ হয়।

  1. পাইথনে টেক্সট ফাইল নিয়ে কাজ করার পূর্ণ গাইড

  2. পাইথন ইমপোর্ট স্টেটমেন্টে একাধিক মডিউল ব্যবহার করা

  3. পাইথনে একাধিক ডিলিমিটার দিয়ে স্ট্রিং ভাঙা

  4. পাইথনে JSON ফাইল প্রিটি প্রিন্ট করার পদ্ধতি