python – hashlib.md5()TypeError:Unicode对象必须在散列之前
发布时间:2020-12-16 23:07:27 所属栏目:Python 来源:网络整理
导读:我是新的编码,并遇到一个问题,试图编码一个字符串. import hashlib a = hashlib.md5() a.update('hi')Traceback (most recent call last): File "pyshell#22",line 1,in module a.update('hi')TypeError: Unicode-objects must be encoded before hashing a.
我是新的编码,并遇到一个问题,试图编码一个字符串.
>>> import hashlib >>> a = hashlib.md5() >>> a.update('hi') Traceback (most recent call last): File "<pyshell#22>",line 1,in <module> a.update('hi') TypeError: Unicode-objects must be encoded before hashing >>> a.digest() b'xd4x1dx8cxd9x8fx00xb2x04xe9x80tx98xecxf8B~' 是(a)现在被认为是编码? 第二个问题:当我在脚本中运行相同的代码时,我得到这个错误: import hashlib a = hashlib.md5() a.update('hi') a.digest() 追溯(最近呼叫最后): 为什么代码在shell中工作而不是脚本? 谢谢. 解决方法
因为你编码简单的字符串,我推断你正在运行Python 3,其中所有的字符串都是unicode对象,你有两个选择:
>提供字符串的编码,例如:“没有人检查”.encode(‘utf-8’) m.update(b"Nobody inspects") m.update(b" the spammish repetition") shell脚本中行为不同的原因是脚本停止在错误上,而在shell中,最后一行是单独的命令,但是由于上一个错误,仍然没有执行任何操作. (编辑:李大同) 【声明】本站内容均来自网络,其相关言论仅代表作者个人观点,不代表本站立场。若无意侵犯到您的权利,请及时与联系站长删除相关内容! |