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进行解码得到的结果,将无法还原原来的字符串内容
 
时间: 2024-12-18 14:36:12

python 3使用binascii方法的报错解决的相关文章

mysql导入数据方法和报错解决

mysql -u root -p databasename < db.sql 数据库导入数据时,MySQL收到下面异常:ERROR 1153 (08S01): Got a packet bigger than 'max_allowed_packet' bytes. 这是因为没有调整mysql的默认配置,默认最大只能处理16M的文件,而我要导入的伪造数据有50M的一个SQL. 于是调整配置文件: /etc/my.cnf 修改mysql的最大允许包大小 在[mysqld]部分(不在这部分没用)添加一

node-sass报错解决方法

node-sass报错解决方法 node-sass报错解决方法 在Vue.js中,每一个vue文件都是一个组件,在.vue文件中可以将模板,脚本,样式写在一起,便于组织整个组件.在使用template,script时,编写css样式时,都进行的特别顺利,唯独当我想用sass来预处理css时,在style下使用lang='sass'一直报错. 在.vue中是这样的. <template > <div class="haha"> <p> keith +

python中引入包的时候报错AttributeError: module &#39;sys&#39; has no attribute &#39;setdefaultencoding&#39;解决方法?

python中引入包的时候报错:import unittestimport smtplibimport timeimport osimport sysimp.reload(sys)sys.setdefaultencoding('utf-8') AttributeError: module 'sys' has no attribute 'setdefaultencoding'解决方法: 1.python2中解决方法:reload(sys)sys.setdefaultencoding('utf-8'

Python自动化之下拉框,隐藏标签定位 代码&报错解决

python自动化:下拉框定位方法之select标签 style="display: none;"报错selenium.common.exceptions.ElementNotVisibleException: Message: element not visible: Element is not currently visible and may not be manipulated 界面源码:(禅道为例)排查:1)因为是隐藏的,需要操作其可见才可定位 2)若还是无法定位,请查看前

zabbix源码安装流程及报错解决方法

zabbix源码安装流程及报错解决方法 一. zabbix的介绍 1) zabbix是什么 zabbix是一款基于web页面的.开源的.企业级的,支持分布式部署的监控软件. 2)2.zabbix的作用 监控windows和Linux主机上的软硬件状态. 监控各网络设备,如路由器.交换机.防火墙.f5.打印机等. 支持邮件短信微信等平台发送告警通知. 通过web页面及图形展示监控数据. 3)zabbix的特性 由zabbix server和agent程序协同工作,还支持分布式监控,这时需要安装za

Python“Non-ASCII character &#39;xe5&#39; in file”报错问题(转)

今天在编译一个Python程序的时候,一直出现"Non-ASCII character 'xe5' in file"报错问题 1 SyntaxError: Non-ASCII character '\xe5' in file kNN.py on line 24, but no encoding declared; see http://python.org/dev/peps/pep-0263/ for details 出现问题的原因: Python默认是以ASCII作为编码方式的,如果

python里面出现中文的时候报错 &#39;ascii&#39; codec can&#39;t encode characters in position

编码问题,在头部添加 import sys reload(sys) sys.setdefaultencoding( "utf-8" ) http://www.xuebuyuan.com/2226637.html python里面出现中文的时候报错 'ascii' codec can't encode characters in position

报错解决方法Error: Can&#39;t connect to local MySQL server through socket

Error: Can't connect to local MySQL server through socket '/var/lib/mysql/mysql.sock' (2)Errno.: 2002解决方法一:因为你还没有启动mysql,当你启动mysql后,mysql.sock就会自动的生成../bin/safe_mysqld   --user=root   &(这是默认的).如果还没有,就是MYSQL权限没给,或其它原因还有就是 你的mysql是否启动了      启动后一般很难出现这个

PS win7_无法打开提示MSVCP120.dll报错解决方法

PS win7_无打开提示MSVCP120.dll报错解决方法 1.PS软件安装后无法打开,并提示MSVCP120.dll"ps无法启动此程序此 因为计算机中丢失msvcp120.dll" 报错提示: 问题解决方法: 下载DirectX Repair工具-安装并运行即可,会自动检测是否丢失msvcp120.dll等一系列套件. 提示图片: 下载链接:http://www.pc6.com/softview/SoftView_57945.html 注:根据自己本身使用系统版本,下载Dire