ホームページ >バックエンド開発 >Python チュートリアル >Python の「TypeError: リスト インデックスは Str ではなく、整数またはスライスである必要があります」エラーを修正する方法
TypeError: リスト インデックスは整数である必要があります
エラー「TypeError: リスト インデックスは str ではなく、整数またはスライスである必要があります」が発生する整数やスライスの代わりに文字列インデックスを使用してリスト項目にアクセスしようとします。このエラーは、CSV エクスポートのために 2 つのリストを 1 つの配列にマージするときによく発生します。
このエラーを回避するには、次の手順に従います。
2 番目のリストの長さを変換するインデックスは常に整数である必要があるため、(array_dates) を整数に変換します。
array_length = len(array_dates)
range 関数を使用して、新しい array_length 整数を反復処理します。これにより、反復子の値が自動的にインクリメントされます。
for i in range(array_length): # Use `xrange` for Python 2.
zip を使用して 2 つのリストを結合することによって、コードを合理化することもできます。それらは同じ長さです:
result_array = zip(array_dates, array_urls) csv_file.writerows(result_array)
修正されたコードは次のとおりです:
def fill_csv(self, array_urls, array_dates, csv_file_path): array_length = len(array_dates) # We fill the CSV file with open(csv_file_path, "w") as file: csv_file = csv.writer(file, delimiter=';', lineterminator='\n') # We merge the two arrays in one result_array = [] for i in range(array_length): result_array[i][0].append(array_urls[i]) result_array[i][1].append(array_dates[i]) csv_file.writerows(result_array)
以上がPython の「TypeError: リスト インデックスは Str ではなく、整数またはスライスである必要があります」エラーを修正する方法の詳細内容です。詳細については、PHP 中国語 Web サイトの他の関連記事を参照してください。