文字列をcsvファイルオブジェクトに書き込むために、python 2/3互換コードを書き込もうとしています。このコード:
line_as_list = [line.encode() for line in line_as_list]
writer_file = io.BytesIO()
writer = csv.writer(writer_file, dialect=dialect, delimiter=self.delimiter)
for line in line_as_list:
assert isinstance(line,bytes)
writer.writerow(line)
Python3 で次のエラーが発生します。
> writer.writerow(line)
E TypeError: a bytes-like object is required, not 'str'
しかし、assert は型に問題がないのに、なぜcsv
エラーが発生するのでしょうか。
BytesIO
Python 2 と 3 の両方にしか使えないのですか? ここで問題はどこにありますか?