-1

csv ファイルに対していくつかの関数を実行しています。特定の列を呼び出して、テキストを分割します。

 with open('lasty.csv','rb') as f:
     reader = csv.reader(f, delimiter=',')
     for column in reader:
          entry = column[7].split(" ")[4]  

列 7 の例は次のようになります。

    ['Withdrawal', 'Debit', '', '', "MITTCHELL'S", 'FISH', 'M', '', '', '', '', 'location', 'location', '', 'location']

次のエラーが表示されます。

    entry = column[7].split(" ")[4]
    IndexError: list index out of range

しかし、私が実行した場合:

  entry = column[7].split(" ")[0]

エラーなしで動作しますが、[0]の後は同じエラーが発生します。

よろしくお願いします。

編集:

分割前の列 7 は次のようになります。

    "Withdrawal Debit   MITTCHELL'S FISH M     WINTER PARK  FLUS"

この場合、列が分割されたときに [4] または 5 位にある "MITTCHELL'S" を取得しようとしています。

4

1 に答える 1

2

row入力 CSV からの個々の行であり、既に列に分割されています。

この場合、空の文字列を分割しようとしています:

>>> ''.split(' ')
['']

entry = row[4]代わりに使用してください:

 for row in reader:
      entry = row[4]  
于 2013-07-15T15:34:26.590 に答える