r = {'is_claimed': 'True', 'rating': 3.5}
r = json.dumps(r)
file.write(str(r['rating']))
Ich kann im JSON nicht auf meine Daten zugreifen. Was mache ich falsch?
TypeError: string indices must be integers, not str
r = {'is_claimed': 'True', 'rating': 3.5}
r = json.dumps(r)
file.write(str(r['rating']))
Ich kann im JSON nicht auf meine Daten zugreifen. Was mache ich falsch?
TypeError: string indices must be integers, not str
Antworten:
json.dumps()
konvertiert ein Wörterbuch in ein str
Objekt, kein json(dict)
Objekt! Sie müssen also Ihre str
in eine laden dict
, um sie mithilfe der json.loads()
Methode zu verwenden
Siehe json.dumps()
als Speichermethode und json.loads()
als Abrufmethode.
Dies ist das Codebeispiel, das Ihnen helfen könnte, es besser zu verstehen:
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()
Gibt die JSON-Zeichenfolgendarstellung des Python-Dikts zurück. Siehe die Dokumente
Sie können nicht tun, r['rating']
weil r eine Zeichenfolge ist, kein Diktat mehr
Vielleicht hast du so etwas gemeint
r = {'is_claimed': 'True', 'rating': 3.5}
json = json.dumps(r) # note i gave it a different name
file.write(str(r['rating']))
Sie müssen es nicht mithilfe von in einen String konvertieren json.dumps()
r = {'is_claimed': 'True', 'rating': 3.5}
file.write(r['is_claimed'])
file.write(str(r['rating']))
Sie können die Werte direkt vom dict-Objekt abrufen.
loaded_r
, wenn man bedenkt, dass Sie ihn bereits hattenr
?