Heim >Backend-Entwicklung >Python-Tutorial >Warum erhalte ich beim Konvertieren von JSON in CSV in Python die Fehlermeldung „TypeError: String-Indizes müssen Ganzzahlen sein'?

Warum erhalte ich beim Konvertieren von JSON in CSV in Python die Fehlermeldung „TypeError: String-Indizes müssen Ganzzahlen sein'?

Barbara Streisand
Barbara StreisandOriginal
2024-12-05 01:50:10182Durchsuche

Why Am I Getting

Fehlerbehebung: „TypeError: String-Indizes müssen Ganzzahlen sein“ bei der JSON-zu-CSV-Konvertierung

In Ihrem Python-Code zum Parsen von JSON und Wenn Sie es in CSV konvertieren, tritt der Fehler „TypeError: String-Indizes müssen Ganzzahlen sein“ auf. Um dieses Problem zu beheben, wollen wir uns mit dem zugrunde liegenden Problem befassen und eine Lösung anbieten.

Der Fehler „TypeError: String-Indizes müssen Ganzzahlen sein“ weist darauf hin, dass Sie versuchen, über einen Index auf eine Variable vom Typ String zuzugreifen. In Ihrem Fall versuchen Sie, mithilfe von Indizes auf die Werte eines JSON-Objekts zuzugreifen.

Zum Beispiel in Ihrem Code-Snippet:

csv_file.writerow([item["gravatar_id"], item["position"], item["number"]])

Sie versuchen, auf die Werte verschiedener zu zugreifen Felder im JSON-Objekt mithilfe von Indexnamen wie „gravatar_id“, „position“ und „number“. Diese Felder sind jedoch keine Indizes, sondern Schlüssel eines wörterbuchähnlichen Objekts.

Um diesen Fehler zu beheben und korrekt auf die Feldwerte des JSON-Objekts zuzugreifen, müssen Sie die Wörterbuchzugriffssyntax verwenden. Hier ist der korrigierte Code mit der Funktion JSON.loads():

import json
import csv

with open('issues.json', 'r') as f:
    data = json.load(f)

with open('issues.csv', 'wb+') as f:
    csv_file = csv.writer(f)
    csv_file.writerow(["gravatar_id", "position", "number"])

    for item in data['issues']:
        csv_file.writerow([item.get('gravatar_id'), item.get('position'), item.get('number')])

Dieser Code verwendet die Methode get(), um die Werte der angegebenen Felder aus dem wörterbuchähnlichen JSON-Objekt abzurufen.

Indem Sie die falsche String-Indizierung durch die richtige Wörterbuchzugriffssyntax ersetzen, können Sie die JSON-Datei erfolgreich analysieren und die gewünschten Werte in die CSV-Datei extrahieren, ohne auf die Fehlermeldung „String-Indizes müssen“ stoßen Fehler „Ganzzahlen“.

Das obige ist der detaillierte Inhalt vonWarum erhalte ich beim Konvertieren von JSON in CSV in Python die Fehlermeldung „TypeError: String-Indizes müssen Ganzzahlen sein'?. Für weitere Informationen folgen Sie bitte anderen verwandten Artikeln auf der PHP chinesischen Website!

Stellungnahme:
Der Inhalt dieses Artikels wird freiwillig von Internetnutzern beigesteuert und das Urheberrecht liegt beim ursprünglichen Autor. Diese Website übernimmt keine entsprechende rechtliche Verantwortung. Wenn Sie Inhalte finden, bei denen der Verdacht eines Plagiats oder einer Rechtsverletzung besteht, wenden Sie sich bitte an admin@php.cn