pandas读写操作编码问题 'gbk' codec can't decode byte 0x80 in position 41: illegal multibyte sequence

关于这个问题的解决方式有一下几个着重点,这里分享一下,希望大家能够避开这个误区。

第一点,如果出现这个报错,可以看一下是不是自己是不是有以下的操作

å¨è¿éæå¥å¾çæè¿°

这时候需要在open函数后面加上编码方式,并规定是utf-8,

原因在于:

Python 3里面字符串的默认编码是Unicode:这样,从网页中爬取的内容,如:data = BeautifulSoup(comment,'lxml').get_text()在代码里面是存在字符串变量里。
但是,Windows下面新建的文本文件默认的编码是gbk(Windows简体中文版的系统默认编码就是gbk)
这样一来,当把从网页上读取的内容写到文本文件里面去的时候,意味着把一个unicode的字符序列写入到一个编码是gbk的文件,就会出错了。
如果依然解决不了问题,可以采取第二种措施:

第二点,找到你的python文件下的lib文件,在里面找到subprocess.py文件,里面有一个class Popen()的类,将里面的初始化的编码方式改成UTF-8就可以了

另外说一下我出现问题的背景,我是运行一个保存的js文件,然后出现这个问题,我才用第一个方法,没有解决,然后就在第一个的基础上采用第二个,解决了问题,我尝试了一下,如果第一点的encoding参数不加,还是会报错的。

希望对你有用,但是可能出现的问题不是一样的,所以异地那个要看清楚出现问题的背景。

最后也感谢https://blog.csdn.net/weixin_42555080/article/details/88219318的分享,部分内容来源于这个博客。

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

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

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

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值