Heim  >  Artikel  >  Backend-Entwicklung  >  Warum erhalte ich beim Zugriff auf Listenelemente die Fehlermeldung „TypeError: Listenindizes müssen Ganzzahlen oder Slices sein, nicht str'?

Warum erhalte ich beim Zugriff auf Listenelemente die Fehlermeldung „TypeError: Listenindizes müssen Ganzzahlen oder Slices sein, nicht str'?

Barbara Streisand
Barbara StreisandOriginal
2024-11-21 00:46:23724Durchsuche

Why am I getting the

TypeError: Listenindizes müssen Ganzzahlen oder Slices sein, nicht str

Dieser Fehler tritt auf, wenn versucht wird, mit einer Zeichenfolge als auf ein Listenelement zuzugreifen der Index. In Ihrem Code versuchen Sie, mit i auf Elemente in result_array zuzugreifen, einem String, der die Länge von array_dates darstellt.

Lösung:

Um dieses Problem zu beheben , müssen Sie:

  1. array_length in eine konvertieren Ganzzahl:

    array_length = len(array_dates)
  2. Verwenden Sie die Funktion „range()“, um über die Ganzzahlen bis zu array_length zu iterieren. Entfernen Sie das manuelle Inkrement von i.

    for i in range(array_length):
        # Your code here
  3. Alternativ können Sie die Listen array_dates und array_urls komprimieren, da sie dieselbe Länge haben:

    result_array = zip(array_dates, array_urls)

Dann schreiben Sie die result_array-Zeilen mithilfe der Writerows in Ihre CSV-Datei Methode.

Beispiel für die Verwendung der zip()-Methode:

import csv

def fill_csv(array_urls, array_dates, csv_file_path):
    csv_file_patch = '/path/to/filename.csv'

    with open(csv_file_patch, 'w') as fout:
        csv_file = csv.writer(fout, delimiter=';', lineterminator='\n')
        result_array = zip(array_dates, array_urls)
        csv_file.writerows(result_array)

Das obige ist der detaillierte Inhalt vonWarum erhalte ich beim Zugriff auf Listenelemente die Fehlermeldung „TypeError: Listenindizes müssen Ganzzahlen oder Slices sein, nicht str'?. 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