TypeError: cannot use a string pattern on a bytes-like object
Posted 在这里, 意淫和实干都值得尊重
tags:
篇首语:本文由小常识网(cha138.com)小编为大家整理,主要介绍了TypeError: cannot use a string pattern on a bytes-like object相关的知识,希望对你有一定的参考价值。
一劳永逸解决:TypeError: cannot use a string pattern on a bytes-like object
TypeError: cannot use a string pattern on a bytes-like object
python2和python3之间切换,难免会碰到一些问题,有些方法比如re模块的findall要求传入的是字符串格式的参数,urllib.request.urlopen(url).read()返回的是bytes类型(这个是python3中才有的类型,所以很多python2中的方法都相应更改了)的,这样传参就会报以上错误。
python3中Unicode字符串是默认格式(就是str类型),ASCII编码的字符串(就是bytes类型,bytes类型是包含字节值,其实不算是字符串,python3还有bytearray字节数组类型)要在前面加操作符b或B;python2中则是相反的,ASCII编码字符串是默认,Unicode字符串要在前面加操作符u或U
一劳永逸的解决方法就是根据你传进来的参数自动辨别编码格式,然后进行相应的解码,就搞定啦:
以上是关于TypeError: cannot use a string pattern on a bytes-like object的主要内容,如果未能解决你的问题,请参考以下文章
为啥我有 TypeError: Cannot read property 'protocol' of undefined using axios with vue?
codeigniter Uncaught TypeError: Cannot use 'in' operator to search 'length' in When theres additiona
在 Electron 中,使用“typeof”会导致 TypeError: Cannot assign to read only property
jQuery UI Autocomplete JSON 给出错误:Uncaught TypeError: Cannot use 'in' operator to search '62' in
jquery each报 Uncaught TypeError: Cannot use 'in' operator to search for错误
无法从数组中获取相关值,出现 Uncaught TypeError "Cannot use 'in' operator to search 'length"