বিভিন্ন ম্যাপিং সংগ্রহের মধ্যে সূক্ষ্ম পার্থক্যের মধ্যে এটি একটি যা আপনাকে কামড়াতে পারে। JSON কীগুলি স্ট্রিং হিসাবে বিবেচনা করে; পাইথন স্বতন্ত্র কীগুলিকে সমর্থন করে যা কেবলমাত্র টাইপ করে।
পাইথনে (এবং স্পষ্টতই লুয়ায়) ম্যাপিংয়ের কীগুলি (যথাক্রমে অভিধান বা টেবিল,) বস্তুর উল্লেখ। পাইথনগুলিতে এগুলি অবশ্যই অপরিবর্তনীয় প্রকারের হতে পারে, বা এগুলি অবশ্যই কোনও বস্তু হতে পারে যা কোনও __hash__
পদ্ধতি প্রয়োগ করে । (লুয়া ডকস প্রস্তাব দেয় যে এটি স্বয়ংক্রিয়ভাবে পরিবর্তিত বস্তুর জন্য হ্যাশ / কী হিসাবে অবজেক্টের আইডি ব্যবহার করে এবং একই বস্তুর সমতুল্য স্ট্রিং ম্যাপটি নিশ্চিত করতে স্ট্রিং ইন্টার্নিংয়ের উপর নির্ভর করে)।
পার্ল, জাভাস্ক্রিপ্ট, আর্ক এবং অন্যান্য অনেক ভাষায় হ্যাশগুলির জন্য কী, এসোসিয়েটিভ অ্যারে বা প্রদত্ত ভাষার জন্য যা কিছু বলা হয় সেগুলি স্ট্রিং (বা পার্লের "স্কেলার")। পার্লে $foo{1}, $foo{1.0}, and $foo{"1"}
সমস্ত একই ম্যাপিংয়ের জন্য উল্লেখ রয়েছে %foo
--- কীটি স্কেলার হিসাবে মূল্যায়ন করা হয়!
JSON একটি জাভাস্ক্রিপ্ট সিরিয়ালাইজেশন প্রযুক্তি হিসাবে শুরু হয়েছিল। (তাদেরকে JSON ঘোরা জে আভা এস cript হে bject এন otation।) স্বাভাবিকভাবেই এটা যা তার ম্যাপিং শব্দার্থবিদ্যা সঙ্গে সামঞ্জস্যপূর্ণ হয় তার ম্যাপিং স্বরলিপি জন্য শব্দার্থবিদ্যা প্রয়োগ করা হয়।
যদি আপনার সিরিয়ালের উভয় প্রান্তটি পাইথন হতে চলেছে তবে আপনি আচার ব্যবহার করা ভাল। আপনি যদি সত্যিই এটিকে জেএসওএন থেকে নেটিভ পাইথন অবজেক্টে রূপান্তর করতে চান তবে আমার ধারণা আপনার কাছে কয়েকটি পছন্দ আছে। প্রথমে আপনি চেষ্টা করতে পারেন ( try: ... except: ...
) অভিধানে ব্যর্থতার ক্ষেত্রে কোনও কী কোনও সংখ্যায় রূপান্তর করতে। বিকল্পভাবে, আপনি যদি অন্য প্রান্তে কোড যুক্ত করেন (এই জেএসএন ডেটার ক্রমিক বা জেনারেটর) তবে আপনি এটি প্রতিটি মূল মানগুলিতে একটি জেএসওএন সিরিয়ালাইজেশন করতে পারেন --- কীগুলির তালিকা হিসাবে সরবরাহ করে providing (তারপরে আপনার পাইথন কোডটি কীগুলির তালিকার উপরে প্রথমে পুনরাবৃত্তি করবে, সেগুলি স্থানীয় পাইথন অবজেক্টগুলিতে তাত্ক্ষণিকভাবে / ডিসসায়ালাইজ করে ... এবং ম্যাপিংয়ের বাইরে মানগুলি অ্যাক্সেসের জন্য সেগুলি ব্যবহার করবে)।