[python基础] csv.wirterow()报错UnicodeEncodeError

python在安装时,默认的编码是ascii,当程序中出现非ascii编码时,python的处理常常会报这样的错,python没办法处理非ascii编码的,此时需要自己设置将python的默认编码,一般设置为utf8的编码格式。

我在写一个脚本存储数据到csv时

1 with open('result_data2.csv', 'w') as file_out:
2     file_out.write(codecs.BOM_UTF8)
3     csv_writer = csv.writer(file_out)
4     for item in ret_list:
5         csv_writer.writerow(item)

因为数据有类似u'xb7'的unicode编码时出现了错误,不得不重新跑一遍,郁闷啊。

解决如下:开头添加

import sys
reload(sys)
sys.setdefaultencoding('utf-8')

注:Python3字符串默认编码unicode, 该语句会报错sys.setdefaultencoding,

AttributeError: module 'sys' has no attribute 'setdefaultencoding'

DONE。

 

posted @ 2018-09-14 16:35  赞美上帝  阅读(1337)  评论(0编辑  收藏  举报