Beim Versuch, Daten aus einer JSON-Datei in ein verständliches CSV-Format zu manipulieren, kann es zu der Fehlermeldung „TypeError: „String-Indizes müssen ganze Zahlen sein“ Fehler. Dieser Fehler tritt auf, wenn auf Felder einer Zeichenfolge zugegriffen wird, als wäre es ein Wörterbuch. Lassen Sie uns die Lösung untersuchen.
Um den Fehler zu verstehen, ist es wichtig zu beachten, dass Zeichenfolgen in Python nicht wie Wörterbücher indiziert werden können. In Wörterbüchern kann auf Schlüssel als Zeichenfolgen zugegriffen werden, z. B. dictionary["key"]. Im Gegensatz dazu muss der Zugriff auf Felder einer Zeichenfolge über ganzzahlige Indizes erfolgen, wie im folgenden Beispiel gezeigt:
mystring = "helloworld" print(mystring[0]) # Outputs 'h', as '0' refers to the first character
In Ihrem Code versuchen Sie, auf Felder zuzugreifen der Elementvariablen, die vom Typ Zeichenfolge ist:
csv_file.writerow([item["gravatar_id"], item["position"], item["number"]])
Um das Problem zu beheben, konvertieren Sie die Elementvariable in ein Wörterbuch, bevor Sie darauf zugreifen Felder:
csv_file.writerow([item.get("gravatar_id"), item.get("position"), item.get("number")])
Alternativ können Sie die Funktion „loads()“ des JSON-Moduls verwenden, um die Elementzeichenfolge direkt in ein Wörterbuch umzuwandeln:
item_dict = json.loads(item) csv_file.writerow([item_dict["gravatar_id"], item_dict["position"], item_dict["number")])
Diese Änderungen stellen sicher, dass Sie auf Felder zugreifen Verwendung von Ganzzahlindizes, Behebung des Fehlers „TypeError: Zeichenfolgenindizes müssen Ganzzahlen sein“.
Das obige ist der detaillierte Inhalt vonWie behebe ich „TypeError: String-Indizes müssen ganze Zahlen sein' beim Parsen von JSON-Daten?. Für weitere Informationen folgen Sie bitte anderen verwandten Artikeln auf der PHP chinesischen Website!