最近Python处理数据的一些心得(二)

        仍然在为毕业论文奋战,有一个月了吧,都没怎么睡好,总算快要看到希望了。Web文本的清理和结构化工作基本完成,最近几天在做分词了。本来以为清理的时候已经够小心了,结果,调用结巴分词模块的时候,还是遇到了很多问题,好在在家的时候是有网的,我大中华就是不缺人才,下面的问题也都是我各种查别人的博客找到的,谢谢大神们。

坑一:

        本来处理数据的时候一直用的是GB2312编码,看结巴的文档的前几句话里,就看到“建议使用utf-8编码,用gb2312有时会出错”几个字,当时心都碎了。然后就想着把编码转过来就行了嘛,可是,事实并没有那么简单...

        首先,   自然而然的想到先解码再编码就行了,所以,尝试使用下面这种写法转换编码:

line = line.decode('GB2312').encode('utf-8')

        但是,非常轻松的就报错了。错误提示如下所示:

205828_bjyA_2363695.png

        相信很多人都出现过这种问题,我在网上查到,说修改系统默认的字符编码就行了,于是,我尝试在文件开头加入了这样的代码:

import sys
reload(sys)
sys.setdefaultencoding('utf-8')

网上好多博客、问答里都是这么写的, 结果运行一下之后,并没有什么乱用,于是,继续找办法。

终于,让我发现了这么个办法:

line = line.decode('GB2312','ignore').encode('utf-8')

我还真不知道decode还要'ignore'这么个神奇的属性,结果就好使了,很好使,一点儿都不报错了...

这里附上这位大神的博客URL,他还介绍了另一种处理方法,我暂时没用到,没有测试效果,所以就不贴了,有需要的同学自行点进去查看。http://blog.csdn.net/cnmilan/article/details/9264643


转载于:https://my.oschina.net/moonrain/blog/600444

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值