কম্পিউটার

পাইথন নেস্টেড অভিধানকে সমতল অভিধানে রূপান্তর করবেন?


যেহেতু বিশ্ব আরও অসংগঠিত ডেটা গ্রহণ করে, আমরা ডেটার অনেক ফর্ম্যাটের মধ্যে আসি যেখানে ডেটা স্ট্রাকচার নেস্টেড JSONS-এর মতো গভীরভাবে নেস্ট করা যেতে পারে। পাইথন ডেটা সমতল করার জন্য বাইরের কীগুলির সাথে ভিতরের কীগুলিকে সংযুক্ত করে নেস্টেড ডেটা কাঠামোর সাথে মোকাবিলা করার ক্ষমতা রাখে। এই নিবন্ধে আমরা একটি নেস্টেড অভিধান নেব এবং এটিকে সমতল করব।

একটি পুনরাবৃত্তিমূলক পদ্ধতি ব্যবহার করা

এই পদ্ধতিতে আমরা অভিধানে প্রতিটি আইটেমকে পুনরাবৃত্তিমূলকভাবে প্রক্রিয়া করার জন্য একটি ফাংশন ডিজাইন করি। আমরা অভিধান পাস করি, আউটপুট অভিধানের জন্য একটি স্থানধারক ডিজাইন করি, কী এবং বিভাজক প্যারামিটার হিসাবে। পরবর্তী আইটেমটি নিজেই একটি অভিধান কিনা তা পরীক্ষা করার জন্য আমরা ইন্সট্যান্স ব্যবহার করি এবং তারপর এটি যদি একটি অভিধানও হয় তবে এটি পুনরাবৃত্ত কলের মাধ্যমে পাস করি৷

উদাহরণ

dictA = {
   "id": "0001",
   "name": "hotdog",
   "image":
      {
         "url": "images/0001.jpg",

            "thumbnail":
               {
                  "url": "images/thumbnails/0001.jpg",
                  "height,width": "2x4"
               }
      }
}
def dict_flatten(in_dict, dict_out=None, parent_key=None, separator="_"):
   if dict_out is None:
      dict_out = {}

   for k, v in in_dict.items():
      k = f"{parent_key}{separator}{k}" if parent_key else k
      if isinstance(v, dict):
         dict_flatten(in_dict=v, dict_out=dict_out, parent_key=k)
         continue

      dict_out[k] = v

   return dict_out

final_dict = dict_flatten(dictA)
print(final_dict)

আউটপুট

উপরের কোডটি চালানো আমাদের নিম্নলিখিত ফলাফল দেয় -

{
   'id': '0001',
   'name': 'hotdog',
   'image_url': 'images/0001.jpg',
   'image_thumbnail_url': 'images/thumbnails/0001.jpg',
   'image_thumbnail_height,width': '2x4'
}

চেরিপিকার সহ

এটি একটি মডিউল যা সরাসরি ডিকশনারী দিয়ে ইনপুট হিসাবে ব্যবহার করা যেতে পারে। ডিফল্ট বিভাজক হল -.

উদাহরণ

from cherrypicker import CherryPicker

dictA = {
   "id": "0001",
   "name": "hotdog",
   "image":
      {
         "url": "images/0001.jpg",

            "thumbnail":
               {
                  "url": "images/thumbnails/0001.jpg",
                  "height,width": "2x4"
               }
      }
}

picker = CherryPicker(dictA)
print(picker.flatten().get())

আউটপুট

উপরের কোডটি চালানো আমাদের নিম্নলিখিত ফলাফল দেয় -

{
   'id': '0001',
   'name': 'hotdog',
   'image_url': 'images/0001.jpg',
   'image_thumbnail_url': 'images/thumbnails/0001.jpg',
   'image_thumbnail_height,
   width': '2x4'
}

  1. পাইথন প্রোগ্রাম টিপলের একটি তালিকাকে অভিধানে রূপান্তর করতে

  2. পাইথন অভিধানকে কীভাবে একটি তালিকায় রূপান্তর করবেন?

  3. আমি কিভাবে একটি পাইথন টিপলকে অভিধানে রূপান্তর করতে পারি?

  4. কিভাবে পাইথনে একটি স্ট্রিংকে অভিধানে রূপান্তর করবেন?