[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