Heim  >  Artikel  >  Backend-Entwicklung  >  Wie behebe ich den Fehler „TypeError: Listenindizes müssen Ganzzahlen oder Slices sein, nicht Str' in Python?

Wie behebe ich den Fehler „TypeError: Listenindizes müssen Ganzzahlen oder Slices sein, nicht Str' in Python?

Susan Sarandon
Susan SarandonOriginal
2024-11-19 06:24:031025Durchsuche

How to Fix the

TypeError: List Indices Must Be Integers

Der Fehler „TypeError: List Indices Must Be Integers or Slices, not str“ tritt auf, wenn Sie Versuchen Sie, mithilfe eines String-Index anstelle einer Ganzzahl oder eines Slice auf ein Listenelement zuzugreifen. Dieser Fehler tritt häufig auf, wenn zwei Listen für den CSV-Export in einem einzigen Array zusammengeführt werden.

Um diesen Fehler zu vermeiden, befolgen Sie diese Schritte:

  1. Konvertieren Sie die Länge der zweiten Liste (array_dates) zu einer Ganzzahl, wie es bei Indizes immer der Fall sein muss ganze Zahlen.

    array_length = len(array_dates)
  2. Durchlaufen Sie die neue Ganzzahl array_length mit der Bereichsfunktion, die den Iteratorwert automatisch erhöht.

    for i in range(array_length):  # Use `xrange` for Python 2.
  3. Entfernen Sie die Zeile i = 1 aus Ihrer Schleife, da dies nicht mehr erforderlich ist.

Sie können auch rationalisieren Ihren Code, indem Sie zip verwenden, um die beiden Listen zu kombinieren, da sie die gleiche Länge haben:

result_array = zip(array_dates, array_urls)
csv_file.writerows(result_array)

Hier ist der korrigierte Code:

def fill_csv(self, array_urls, array_dates, csv_file_path):
    array_length = len(array_dates)

    # We fill the CSV file
    with open(csv_file_path, "w") as file:
        csv_file = csv.writer(file, delimiter=';', lineterminator='\n')

        # We merge the two arrays in one
        result_array = []
        for i in range(array_length):
            result_array[i][0].append(array_urls[i])
            result_array[i][1].append(array_dates[i])

        csv_file.writerows(result_array)

Das obige ist der detaillierte Inhalt vonWie behebe ich den Fehler „TypeError: Listenindizes müssen Ganzzahlen oder Slices sein, nicht Str' in Python?. 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