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