UnicodeDecodeError: 'utf-8' codec can't decode byte 0xc8 in position 0: invalid continuation bytebp_

最近找数据,下载了个csv文件,用pandas打开出现乐编码错误,之前遇到过没注意,这次记录一下

bp_data = pd.read_csv("399300.csv")

错误原因:

UnicodeDecodeError: 'utf-8' codec can't decode byte 0xc8 in position 0: invalid continuation byte

解决方法,看csv里面的数据是什么类型的。直接用二进制读csv,看能否解码就知道了

f = open("399300.csv","rb")#二进制格式读文件
i = 0
while True:
    i += 1 
    print(i)
    line = f.readline()
    if not line:
        break
    else:
        try:
#             print(line)
#             print(line.decode('utf8'))
            line.decode('utf8')
            #为了暴露出错误,最好此处不print
        except:
            print(str(line))

结果如下:

可以看到很多的字节编码都是无法解码的,对比csv里的数据,第一行是中文,下面的虽说是数据,估计也是和中文一样不支持

的数据类型。

解决方法是强制转编码

df = pd.read_csv('399300.csv', encoding = 'gb2312')

成功读取

 

 

 

 

 

 

  • 2
    点赞
  • 3
    收藏
    觉得还不错? 一键收藏
  • 1
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论 1
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值