TypeError: les indices de liste doivent être des entiers ou des tranches, pas str

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 a obtenu :

  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 ?

20
demandé sur Benjamin 2015-09-14 00:03:41

1 réponses

tout d'Abord, array_length devrait être un entier et non une chaîne:

array_length = len(array_dates)

Deuxièmement, votre for la boucle doit être construite en utilisant range:

for i in range(array_length):  # Use `xrange` for python 2.

Troisième i augmentera automatiquement, donc supprimez la ligne suivante:

i += 1
18
répondu Alexander 2017-10-23 02:43:03