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
У меня была та же ошибка, и ошибка была в том, что я добавил список и словарь в список, и когда я использовал для перебора списка словарей и использовал для попадания в список объектов, я использовал для получения этой ошибки.
Это была ошибка кода, и я удостоверился, что я только добавил объекты словаря в этот список, и это также решило мою проблему.