ホームページ > バックエンド開発 > Python チュートリアル > リストを CSV に結合すると「TypeError: リスト インデックスは Str ではなく、整数またはスライスである必要があります」というメッセージが表示されるのはなぜですか?

リストを CSV に結合すると「TypeError: リスト インデックスは Str ではなく、整数またはスライスである必要があります」というメッセージが表示されるのはなぜですか?

Barbara Streisand
リリース: 2024-12-01 21:12:12
オリジナル
225 人が閲覧しました

Why Am I Getting

TypeError: List Indices Must Be Integers or Slices, Not Str

このエラーでは、2 つのインデックスをマージするコードで問題が発生します。リストを配列に変換し、CSV ファイルに書き込みます。エラー メッセージは、文字列を使用してリストのインデックスを作成しようとしているが、これは許可されていないことを示しています。

これを修正するには、提供されている解決策で説明されている手順に従います。

  1. 変換array_length を整数に変換します。 array_length = str(len(array_dates)) の代わりに、array_length = len(array_dates) を使用します。
  2. for ループで range 関数を使用します。 array_length の for i の代わりに、range(array_length) の for i を使用します。
  3. 自動的にインクリメントされるため、インクリメント行 i = 1 を削除します。

を使用した代替アプローチZip:

使用した方法の代わりに、Python の zip 関数を利用できます。 2 つのリストの要素をペアに結合し、CSV ファイルに直接書き込むことができます。

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)
ログイン後にコピー

これらの変更を実装することで、リストを結合し、結果の配列を CSV ファイルに書き込むことができます。 TypeError が発生することはありません。

以上がリストを CSV に結合すると「TypeError: リスト インデックスは Str ではなく、整数またはスライスである必要があります」というメッセージが表示されるのはなぜですか?の詳細内容です。詳細については、PHP 中国語 Web サイトの他の関連記事を参照してください。

ソース:php.cn
このウェブサイトの声明
この記事の内容はネチズンが自主的に寄稿したものであり、著作権は原著者に帰属します。このサイトは、それに相当する法的責任を負いません。盗作または侵害の疑いのあるコンテンツを見つけた場合は、admin@php.cn までご連絡ください。
著者別の最新記事
人気のチュートリアル
詳細>
最新のダウンロード
詳細>
ウェブエフェクト
公式サイト
サイト素材
フロントエンドテンプレート