["python","list","indexing","typeerror"]
TypeError: list indices must be integers or slices, not str

I've got two lists that I want to merge into a single array and finally put it in a csv file. How I can avoid this error : 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) And got : 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 How can my count work ?
First, array_length should be an integer and not a string: array_length = len(array_dates) Second, your for loop should be constructed using range: for i in range(array_length): # Use `xrange` for python 2. Third, i will increment automatically, so delete the following line: i += 1 Note, one could also just zip the two lists given that they have the same length: import csv dates = ['2020-01-01', '2020-01-02', '2020-01-03'] urls = ['www.abc.com', 'www.cnn.com', 'www.nbc.com'] csv_file_patch = '/path/to/filename.csv' with open(csv_file_patch, 'w') as fout: csv_file = csv.writer(fout, delimiter=';', lineterminator='\n') result_array = zip(dates, urls) csv_file.writerows(result_array)