python3.6使用chardet模块总是报错ValueError: Expected a bytes object, not a unicode object
Posted
tags:
篇首语:本文由小常识网(cha138.com)小编为大家整理,主要介绍了python3.6使用chardet模块总是报错ValueError: Expected a bytes object, not a unicode object相关的知识,希望对你有一定的参考价值。
py3里,字符串,str类型,是unicode编码格式。其他类型都是byte,编码格式是gbk,utf-8等
而chardet是检查byte类型的编码格式的,不是检查str类型的编码格式的。
a="abc啊”,是字符串,就不能用chardet了。
当获取的数据(byte)类型,需要当成字符串来处理,需要先将其编码成unicode(python处理的都是此编码)。
而要将bytes转换成unicode,需要先知道bytes具体是什么编码格式如gbk,然后使用aa=decode("gbk"),aa为unicode的该数据内容。
如果很不幸,你有一堆bytes,不知道它们的编码(例如 网站服务器返回的响应体),
这时候,你就需要chardet
来测试它们的编码。
以上是关于python3.6使用chardet模块总是报错ValueError: Expected a bytes object, not a unicode object的主要内容,如果未能解决你的问题,请参考以下文章