J'ai deux listes que je veux fusionner dans un tableau pour finalement le mettre dans un fichier csv. Je suis un débutant avec les tableaux de Python et je ne comprends pas comment je peux éviter cette erreur:
def fill_csv(self, array_urls, array_dates, csv_file_path):
result_array = []
array_length = str(len(array_dates))
# We fill the CSV file
file = open(csv_file_path, "w")
csv_file = csv.writer(file, delimiter=';', lineterminator='\n')
# We merge the two arrays in one
for i in array_length:
result_array[i][0].append(array_urls[i])
result_array[i][1].append(array_dates[i])
i += 1
csv_file.writerows(result_array)
Et j'ai:
File "C:\Users\--\gcscan.py", line 63, in fill_csv
result_array[i][0].append(array_urls[i])
TypeError: list indices must be integers or slices, not str
Comment mon compte peut-il fonctionner?
Tout d'abord, array_length
devrait être un entier et non une chaîne:
array_length = len(array_dates)
Deuxièmement, votre boucle for
devrait être construite avec range
:
for i in range(array_length): # Use `xrange` for python 2.
Troisièmement, i
sera incrémenté automatiquement, supprimez donc la ligne suivante:
i += 1
J'ai eu la même erreur et l'erreur était que j'avais ajouté liste et dictionnaire dans une liste et que lorsque je parcourais la liste des dictionnaires et que j'utilisais pour frapper un objet de la liste, j'avais l'habitude d'obtenir cette erreur.
C'était une erreur de code et je me suis assuré que je n'avais ajouté que des objets de dictionnaire à cette liste, ce qui a également résolu mon problème.