r = {'is_claimed': 'True', 'rating': 3.5}
r = json.dumps(r)
file.write(str(r['rating']))
Saya tidak dapat mengakses data saya di JSON. Apa yang saya lakukan salah?
TypeError: string indices must be integers, not str
r = {'is_claimed': 'True', 'rating': 3.5}
r = json.dumps(r)
file.write(str(r['rating']))
Saya tidak dapat mengakses data saya di JSON. Apa yang saya lakukan salah?
TypeError: string indices must be integers, not str
Jawaban:
json.dumps()
mengonversi kamus ke str
objek, bukan json(dict)
objek! Jadi, Anda harus memuat str
ke dalam dict
untuk menggunakannya dengan menggunakan json.loads()
metode
Lihat json.dumps()
sebagai metode penyimpanan dan json.loads()
sebagai metode pengambilan.
Ini adalah contoh kode yang dapat membantu Anda lebih memahaminya:
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()
mengembalikan representasi string JSON dari dict python. Lihat dokumen
Anda tidak dapat melakukannya r['rating']
karena r adalah string, bukan dict lagi
Mungkin maksudmu seperti itu
r = {'is_claimed': 'True', 'rating': 3.5}
json = json.dumps(r) # note i gave it a different name
file.write(str(r['rating']))
Tidak perlu mengonversinya menjadi string dengan menggunakan json.dumps()
r = {'is_claimed': 'True', 'rating': 3.5}
file.write(r['is_claimed'])
file.write(str(r['rating']))
Anda bisa mendapatkan nilai langsung dari objek dict.
loaded_r
, mengingat Anda sudah memilikinyar
?