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 ?
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 :
Convertissez la longueur de la deuxième liste (array_dates) à un entier, car les indices doivent toujours être entiers.
array_length = len(array_dates)
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.
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!