r = {'is_claimed': 'True', 'rating': 3.5}
r = json.dumps(r)
file.write(str(r['rating']))
JSON'daki verilerime erişemiyorum. Neyi yanlış yapıyorum?
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'daki verilerime erişemiyorum. Neyi yanlış yapıyorum?
TypeError: string indices must be integers, not str
Yanıtlar:
json.dumps()
sözlüğü str
bir json(dict)
nesneye değil, nesneye dönüştürür! Eğer yüklemek zorunda Yani senin str
bir içine dict
kullanarak kullanmak json.loads()
yöntemini
Bkz json.dumps()
kaydetme yöntemi ve bir şekilde json.loads()
bir geri yöntem olarak.
Bu, daha fazla anlamanıza yardımcı olabilecek kod örneğidir:
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()
python dict'in JSON dizesi temsilini döndürür. Dokümanlara bakın
Sen yapamaz r['rating']
r artık bir dize değil, bir dict çünkü
Belki de böyle bir şey demek istedin
r = {'is_claimed': 'True', 'rating': 3.5}
json = json.dumps(r) # note i gave it a different name
file.write(str(r['rating']))
Kullanarak bir dizede dönüştürmeye gerek yok json.dumps()
r = {'is_claimed': 'True', 'rating': 3.5}
file.write(r['is_claimed'])
file.write(str(r['rating']))
Değerleri doğrudan dict nesnesinden alabilirsiniz.
loaded_r
zaten içinde bulunduğunuzu düşünerek ayrı bir değişkene geri yüklemenin biraz verimsiz olduğunu düşünmüyorr
musunuz?