会员登录 立即注册

搜索

gbk' codec can't decode byte 0xad in

[复制链接]
崎山小鹿 发表于 2024-1-17 18:20:06 | 显示全部楼层 |阅读模式
崎山小鹿
2024-1-17 18:20:06 187 1 看全部
Python中读取txt文本出现  'gbk' codec can't decode byte 0xbf in position 2: illegal multibyte sequence

报错原因是读取的文件中有中文。

def load_data(filename):
    D = []
    with open(filename,'r') as f:
        for i, l in enumerate(f):
            l = json.loads(l)
            text, label = l['sentence'], l['label']
            D.append((text, labels.index(label)))
    return D

改成:
def load_data(filename):
    D = []
    with open(filename,'r', encoding='utf-8') as f:
        for i, l in enumerate(f):
            l = json.loads(l)
            text, label = l['sentence'], l['label']
            D.append((text, labels.index(label)))
    return D
回复

使用道具 举报

 楼主| 崎山小鹿 发表于 2024-1-17 21:17:35 | 显示全部楼层
崎山小鹿
2024-1-17 21:17:35 看全部
使用python的时候经常会遇到文本的编码与解码问题,其中很常见的一种解码错误如题目所示,下面介绍该错误的解决方法,将‘gbk’换成‘utf-8’也适用。
(1)、首先在打开文本的时候,设置其编码格式,如:open(‘1.txt’,encoding=’gbk’);
(2)、若(1)不能解决,可能是文本中出现的一些特殊符号超出了gbk的编码范围,可以选择编码范围更广的‘gb18030’,如:open(‘1.txt’,encoding=’gb18030’);
(3)、若(2)仍不能解决,说明文中出现了连‘gb18030’也无法编码的字符,可以使用‘ignore’属性进行忽略,如:open(‘1.txt’,encoding=’gb18030’,errors=‘ignore’);
(4)、还有一种常见解决方法为open(‘1.txt’).read().decode(‘gb18030’,’ignore’)
————————————————
版权声明:本文为CSDN博主「火贪三刀」的原创文章,遵循CC 4.0 BY-SA版权协议,转载请附上原文出处链接及本声明。
原文链接:https://blog.csdn.net/shijing_0214/article/details/51971734
回复

使用道具 举报

  • 您可能感兴趣
您需要登录后才可以回帖 登录 | 立即注册 |

本版积分规则 返回列表

查看:187 | 回复:1

金双石科技,软件开发20年,技术行业领先,您的满意,就是我们的目标,认真负责,开拓进取,让成品物超所值
关于我们
公司简介
发展历程
联系我们
本站站务
友情链接
新手指南
内容审核
商家合作
广告合作
商家入驻
新闻合作

手机APP

官方微博

官方微信

联系电话:15876572365 地址:深圳市宝安区西乡街道宝民二路宝民花园5巷6栋405 ( 粤ICP备2021100124号-1 ) 邮箱:qishanxiaolu@qq.com
QQ|Powered by Discuz! X3.5 © 2001-2023 Discuz! Team.
快速回复 返回顶部 返回列表