Maison  >  Article  >  développement back-end  >  Comment corriger l'erreur « TypeError : les indices de liste doivent être des entiers ou des tranches, pas des str » en Python ?

Comment corriger l'erreur « TypeError : les indices de liste doivent être des entiers ou des tranches, pas des str » en Python ?

Susan Sarandon
Susan Sarandonoriginal
2024-11-19 06:24:031003parcourir

How to Fix the

TypeError : les indices de liste doivent être des entiers

L'erreur "TypeError : les indices de liste doivent être des entiers ou des tranches, pas des str" se produit lorsque vous tenter d'accéder à un élément de liste en utilisant un index de chaîne au lieu d'un entier ou d'une tranche. Cette erreur est courante lors de la fusion de deux listes en un seul tableau pour l'exportation CSV.

Pour éviter cette erreur, suivez ces étapes :

  1. Convertissez la longueur de la deuxième liste (array_dates) à un entier, car les indices doivent toujours être entiers.

    array_length = len(array_dates)
  2. Parcourez le nouvel entier array_length à l'aide de la fonction range, qui incrémente automatiquement la valeur de l'itérateur.

    for i in range(array_length):  # Use `xrange` for Python 2.
  3. Supprimez la ligne i = 1 de votre boucle, car ce n'est plus nécessaire.

Vous pouvez rationalisez également votre code en utilisant zip pour combiner les deux listes, puisqu'elles ont la même longueur :

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

Voici le code corrigé :

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)

Ce qui précède est le contenu détaillé de. pour plus d'informations, suivez d'autres articles connexes sur le site Web de PHP en chinois!

Déclaration:
Le contenu de cet article est volontairement contribué par les internautes et les droits d'auteur appartiennent à l'auteur original. Ce site n'assume aucune responsabilité légale correspondante. Si vous trouvez un contenu suspecté de plagiat ou de contrefaçon, veuillez contacter admin@php.cn