TypeError: индексы индексов должны быть целыми числами или срезами, а не str

У меня есть два списка, которые я хочу объединить в один массив fo, наконец, поместив его в файл csv. Я новичок с массивами Python, и я не понимаю, как я могу избежать этой ошибки:

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)

И получил:

  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

Как мой счет может работать?

Ответы

Ответ 1

Во-первых, array_length должен быть целым числом, а не строкой:

array_length = len(array_dates)

Во-вторых, ваш цикл for должен быть сконструирован с помощью range:

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

В-третьих, i будет автоматически увеличиваться, поэтому удалите следующую строку:

i += 1

Ответ 2

У меня была та же ошибка, и ошибка была в том, что я добавил список и словарь в список, и когда я использовал для перебора списка словарей и использовал для попадания в список объектов, я использовал для получения этой ошибки.

Это была ошибка кода, и я удостоверился, что я только добавил объекты словаря в этот список, и это также решило мою проблему.