Python讀取csv、excel編碼問題導致的錯誤(ValueError: Expected 2 fields in line 2, saw 3)


背景:由於需要讀取的文件編碼與系統環境編碼的不同,比如繁體windows系統讀取簡體的csv文檔,經常會出現一些難以解決的編碼問題,也是試了網上許多方法均不得解,最終采取
改變Python標准輸出的默認編碼來解決。


常見報錯:1、ValueError: Expected 2 fields in line 2, saw 3
                  2、UnicodeEncodeError: 'cp950' codec can't encode character '\u76d8' in position 388: illegal multibyte sequence

解決方案:

Python3:

import io

import sys

sys.stdout = io.TextIOWrapper(sys.stdout.buffer,encoding='utf8') #改變標准輸出的默認編碼

Python2:

import sys

reload(sys)

sys.setdefaultencoding('utf8') #改變標准輸出的默認編碼


免責聲明!

本站轉載的文章為個人學習借鑒使用,本站對版權不負任何法律責任。如果侵犯了您的隱私權益,請聯系本站郵箱yoyou2525@163.com刪除。



 
粵ICP備18138465號   © 2018-2025 CODEPRJ.COM