r = {'is_claimed': 'True', 'rating': 3.5}
r = json.dumps(r)
file.write(str(r['rating']))
আমি JSON এ আমার ডেটা অ্যাক্সেস করতে সক্ষম নই। আমি কি ভুল করছি?
TypeError: string indices must be integers, not str
r = {'is_claimed': 'True', 'rating': 3.5}
r = json.dumps(r)
file.write(str(r['rating']))
আমি JSON এ আমার ডেটা অ্যাক্সেস করতে সক্ষম নই। আমি কি ভুল করছি?
TypeError: string indices must be integers, not str
উত্তর:
json.dumps()অভিধানকে strবস্তুকে রূপান্তর করে , কোনও json(dict)বস্তুকে নয়! তাই আপনি যদি লোড করতে হবে তা হচ্ছে আপনার strএকটি মধ্যে dictব্যবহার করে এটিকে ব্যবহার করতে json.loads()পদ্ধতি
json.dumps()একটি সংরক্ষণ পদ্ধতি এবং json.loads()পুনরুদ্ধার পদ্ধতি হিসাবে দেখুন ।
এটি কোড নমুনা যা আপনাকে এটি আরও বুঝতে সাহায্য করতে পারে:
import json
r = {'is_claimed': 'True', 'rating': 3.5}
r = json.dumps(r)
loaded_r = json.loads(r)
loaded_r['rating'] #Output 3.5
type(r) #Output str
type(loaded_r) #Output dict
json.dumps()পাইথন ডিকের JSON স্ট্রিং প্রতিনিধিত্ব করে। দস্তাবেজগুলি দেখুন
আপনি করতে পারবেন না r['rating']কারণ r একটি স্ট্রিং, ডিক আর নয়
সম্ভবত আপনি কিছু বোঝানো হয়েছে
r = {'is_claimed': 'True', 'rating': 3.5}
json = json.dumps(r) # note i gave it a different name
file.write(str(r['rating']))
এটি ব্যবহার করে স্ট্রিংয়ে রূপান্তর করার দরকার নেই json.dumps()
r = {'is_claimed': 'True', 'rating': 3.5}
file.write(r['is_claimed'])
file.write(str(r['rating']))
আপনি ডেক অবজেক্ট থেকে সরাসরি মানগুলি পেতে পারেন।
loaded_rআপনি ইতিমধ্যে এটি রেখে এসেছেন তা বিবেচনা করে জাসনকে একটি পৃথক ভেরিয়েবলে ফেরত দেওয়া কিছুটা অক্ষমr?