[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。

 


免责声明!

本站转载的文章为个人学习借鉴使用,本站对版权不负任何法律责任。如果侵犯了您的隐私权益,请联系本站邮箱yoyou2525@163.com删除。



 
粤ICP备18138465号  © 2018-2025 CODEPRJ.COM