r = {'is_claimed': 'True', 'rating': 3.5}
r = json.dumps(r)
file.write(str(r['rating']))
Non riesco ad accedere ai miei dati in JSON. Che cosa sto facendo di sbagliato?
TypeError: string indices must be integers, not str
r = {'is_claimed': 'True', 'rating': 3.5}
r = json.dumps(r)
file.write(str(r['rating']))
Non riesco ad accedere ai miei dati in JSON. Che cosa sto facendo di sbagliato?
TypeError: string indices must be integers, not str
Risposte:
json.dumps()
converte un dizionario in str
oggetto, non un json(dict)
oggetto! Quindi devi caricare il tuo str
in a dict
per usarlo usando il json.loads()
metodo
Vedi json.dumps()
come metodo di salvataggio e json.loads()
come metodo di recupero.
Questo è l'esempio di codice che potrebbe aiutarti a capirlo di più:
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()
restituisce la rappresentazione in stringa JSON del picton dict. Vedi i documenti
Non puoi farlo r['rating']
perché r è una stringa, non più un dict
Forse intendevi qualcosa del genere
r = {'is_claimed': 'True', 'rating': 3.5}
json = json.dumps(r) # note i gave it a different name
file.write(str(r['rating']))
Non è necessario convertirlo in una stringa utilizzando json.dumps()
r = {'is_claimed': 'True', 'rating': 3.5}
file.write(r['is_claimed'])
file.write(str(r['rating']))
È possibile ottenere i valori direttamente dall'oggetto dict.
loaded_r
, considerando che lo avevi già inseritor
?