„Wenn ein Arbeiter seine Arbeit gut machen will, muss er zuerst seine Werkzeuge schärfen.“ – Konfuzius, „Die Gespräche des Konfuzius. Lu Linggong“
Titelseite > Programmierung > Wie behebe ich „TypeError: String-Indizes müssen ganze Zahlen sein“ beim Parsen von JSON-Daten?

Wie behebe ich „TypeError: String-Indizes müssen ganze Zahlen sein“ beim Parsen von JSON-Daten?

Veröffentlicht am 21.12.2024
Durchsuche:266

How to Resolve

Vermeiden von „TypeError: String-Indizes müssen ganze Zahlen sein“

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.

Den Fehler verstehen

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 eines Strings über ganzzahlige Indizes erfolgen, wie im folgenden Beispiel gezeigt:

mystring = "helloworld"
print(mystring[0])  # Outputs 'h', as '0' refers to the first character

Anwenden der Lösung

In Ihrem Code versuchen Sie, auf Felder des Elements zuzugreifen Variable vom Typ string:

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 auf ihre Felder zugreifen:

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 zu konvertieren direkt zu einem Wörterbuch:

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 mit ganzzahligen Indizes zugreifen, wodurch der „TypeError: „String-Indizes müssen ganze Zahlen sein“ Fehler.

Neuestes Tutorial Mehr>

Haftungsausschluss: Alle bereitgestellten Ressourcen stammen teilweise aus dem Internet. Wenn eine Verletzung Ihres Urheberrechts oder anderer Rechte und Interessen vorliegt, erläutern Sie bitte die detaillierten Gründe und legen Sie einen Nachweis des Urheberrechts oder Ihrer Rechte und Interessen vor und senden Sie ihn dann an die E-Mail-Adresse: [email protected] Wir werden die Angelegenheit so schnell wie möglich für Sie erledigen.

Copyright© 2022 湘ICP备2022001581号-3