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
?