如何在写入csv文件时修复编码问题

时间:2016-09-12 04:32:03

标签: python csv encoding

我在写入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文件?

2 个答案:

答案 0 :(得分:0)

我运行了你的代码并且它可以运行而不会丢失任何错误。唯一的问题是你的csv文件包含字节编码值。前面带有b'的值。这是你想要完成的吗?我使用的是python 3.5.2。

如果您不想要字节编码数据,只需删除

a = [s.encode('utf-8') for s in a]

它应该有效。这是我在我的机器上运行时将数据输出到csv中。

http://puu.sh/r8ksr/d778437622.png

答案 1 :(得分:0)

# encoding=utf8  
import sys  

reload(sys)  
sys.setdefaultencoding('utf8')