4

モジュールからの出力をCSVファイルに保存しようとしていますが、モジュールの一部である次のコードを実行するとエラーが発生しました。

base_keys = ['path', 'rDATE', 'cDate', 'cik', 'risk', 'word_count']
outFile = open('c:\\Users\\ahn_133\\Desktop\\Python Project\\MinkAhn_completed2.csv','wb')
dWriter = csv.DictWriter(outFile, fieldnames=base_keys)
dWriter.writerow(headerDict)

これがエラーメッセージです(base_keysは見出しです)。

return self.writer.writerow(self._dict_to_list(rowdict))
TypeError: 'str' does not support the buffer interface

エラーメッセージが何であるかさえわかりません。私はPython3.3とWindows7を使用しています。

御時間ありがとうございます。

4

1 に答える 1

6

CSV データを書き込むためにバイナリ モードでファイルを開くことは、Python 3 では機能しません。必要なのは、テキスト モードで開き、デフォルトのエンコーディングを使用するか、自分でエンコーディングを指定することです。つまり、コードは次のように記述します。

import csv
k = ['hi']
out = open('bleh.csv', 'w', newline='', encoding='utf8') # mode could be 'wt' for extra-clarity
writer = csv.DictWriter(out, k)
writer.writerow({'hi': 'hey'})

現在、バグnewline=''により、CSV 出力を書き込むためにこのファイルを開くときにも指定する必要があります。

于 2012-12-09T18:20:39.140 に答える