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 strObjekt, kein json(dict)Objekt! Sie müssen also Ihre strin 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?