首页 > 代码库 > python 3使用binascii方法的报错解决
python 3使用binascii方法的报错解决
环境是python 3
问题:
使用binascii方法一直出现报错TypeError: a bytes-like object is required, not ‘str‘
#coding: utf-8 import binascii a = ‘worker‘ b = binascii.b2a_hex(a) print(b) #b = binascii.b2a_hex(a) #TypeError: a bytes-like object is required, not ‘str‘
解决方法:
后来修改如下代码才会不报错
b = binascii.b2a_hex(a.encode())
原理:
在新版本的python3中,取消了unicode类型,代替它的是使用unicode字符的字符串类型(str),字符串类型(str)成为基础类型如下所示,而编码后的变为了字节类型(bytes)但是两个函数的使用方法不变:
decode encode
bytes ------> str(unicode)------>bytes
u = ‘中文‘ #指定字符串类型对象u str = u.encode(‘gb2312‘) #以gb2312编码对u进行编码,获得bytes类型对象str u1 = str.decode(‘gb2312‘)#以gb2312编码对字符串str进行解码,获得字符串类型对象u1 u2 = str.decode(‘utf-8‘)#如果以utf-8的编码对str进行解码得到的结果,将无法还原原来的字符串内容
python 3使用binascii方法的报错解决
声明:以上内容来自用户投稿及互联网公开渠道收集整理发布,本网站不拥有所有权,未作人工编辑处理,也不承担相关法律责任,若内容有误或涉及侵权可进行投诉: 投诉/举报 工作人员会在5个工作日内联系你,一经查实,本站将立刻删除涉嫌侵权内容。