我在写入csv文件时有一些编码问题
我该如何解决呢?
import csv
a = [s.encode('utf-8') for s in a]
f3 = open('test.csv', 'at')
writer = csv.writer(f3,delimiter = ',', lineterminator='\n',quoting=csv.QUOTE_ALL)
writer.writerow(a)
错误
Traceback (most recent call last):
File "test.py", line 6, in <module>
a = [s.encode('ascii') for s in a]
UnicodeDecodeError: 'ascii' codec can't decode byte 0xe2 in position 1: ordinal not in range(128)
如何使程序工作并将其写入csv文件?
答案 0 :(得分:0)
我运行了你的代码并且它可以运行而不会丢失任何错误。唯一的问题是你的csv文件包含字节编码值。前面带有b'的值。这是你想要完成的吗?我使用的是python 3.5.2。
如果您不想要字节编码数据,只需删除
a = [s.encode('utf-8') for s in a]
它应该有效。这是我在我的机器上运行时将数据输出到csv中。
答案 1 :(得分:0)
# encoding=utf8
import sys
reload(sys)
sys.setdefaultencoding('utf8')