【Python】TypeError: writerow() takes exactly one argument (○ given)の解決 

Python

pythonであるcsvファイルを作成しようとした際にエラーが発生したので解決してみる。

エラー文

TypeError: writerow() takes exactly one argument (○ given)

↑このようなエラー文が出たので修正していく。

実際のコードはこんな感じ

for row in csv_f:
    row[0] = datetime.datetime.strptime(row[0], '%Y/%m/%d') #datetime型に
    if row[0] <= lastClosingMonth or row[0] >= thisClosingMonth: #今期の決算月以外にマッチすると処理を終了
      pass
    else:
      writer.writerow(row[0].strftime('%Y%m'), row[1], row[2], row[3]) #1か月プラスされた月を出力

とにかくfor文で回してその結果をcsvに出力していきたいと考えていた。
エラー文がおっしゃるには下記の部分が怪しそう。

writer.writerow(row[0].strftime('%Y%m'), row[1], row[2], row[3])

よくよく調べたらカッコを増やしたら解決できるっぽい。

解決コード

for row in csv_f:
    row[0] = datetime.datetime.strptime(row[0], '%Y/%m/%d') #datetime型に
    if row[0] <= lastClosingMonth or row[0] >= thisClosingMonth: #今期の決算月以外にマッチすると処理を終了
      pass
    else:
      writer.writerow((row[0].strftime('%Y%m'), row[1], row[2], row[3])) #1か月プラスされた月を出力

できたー!
ということでいったん解決。

なぜ解決できたのかが分かっていないので、次回以降調べる。

参考ブログ

Pythonでタンパク質相互作用ネットワークを分析する

コメント

タイトルとURLをコピーしました