csvfile_ = open(finishedFileName+num+".csv","w",newline='')
writ = csv.writer(csvfile_, dialect='excel')
firstline = unicode(str(firstline))
try:
writ.writerow(firstline)
except TypeError:
print firstline
print type(firstline)
raise
私はTypeError: must be unicode, not str
このコードで取得します。最初の行のタイプを印刷すると、 が表示されます<type 'unicode'>
。最初の行を印刷するとわかります['project_number', 'project_location']
(リストはそれよりも長くなりますが、そのスタイルで続きます。)
このプログラムは、python 3.3 で正常に動作していました。私は3to2で移植し、そのようにunixからwindowsに切り替えました。
このプログラムをスムーズに書くにはどうすればよいですか?
注: 公式ドキュメントによると、このバージョンの csv モジュールは Unicode 入力をサポートしていませんが、とにかく Unicode 入力を指定するように指示されました。
完全な例外
Traceback (most recent call last):
File "C:\Users\urightswt\Downloads\LogModToConvert.py", line 382, in <module>
process(marketingLogExportFileName)
File "C:\Users\urightswt\Downloads\LogModToConvert.py", line 123, in process
writing(csvfile,modified,firstline)
File "C:\Users\urightswt\Downloads\LogModToConvert.py", line 114, in writing
writ.writerow(firstline)
TypeError: must be unicode, not str
最初のユニコードを作成するコードを取り出すと、代わりに
Traceback (most recent call last):
File "C:\Users\urightswt\Downloads\LogModToConvert.py", line 382, in <module>
process(marketingLogExportFileName)
File "C:\Users\urightswt\Downloads\LogModToConvert.py", line 123, in process
writing(csvfile_,modified,firstline)
File "C:\Users\urightswt\Downloads\LogModToConvert.py", line 114, in writing
writ.writerow(firstline)
TypeError: must be unicode, not str