我搞不懂“bytes”方法在抱怨什么。在下面的代码中,我正试图为我的客户机生成一个身份验证密钥,并且我一直收到这个错误[1]
import hmac
import hashlib
import base64
message = bytes("Message", 'utf-8') # errors here
secret = bytes("secret", 'utf-8')
signature = base64.b64encode(hmac.new(secret, message, digestmod=hashlib.sha256).digest());
print(signature)
[一]
Traceback (most recent call last):
File "API/test/auth-client.py", line 11, in <module>
message = bytes("Message", 'utf-8')
TypeError: str() takes at most 1 argument (2 given)
Python 2.x中的
bytes()
与str()
相同,它只接受一个字符串参数。只用
message = "Message"
和secret = "secret"
。你甚至不需要这里。您遇到此问题的可能原因是您使用的代码是为Python3.x编写的,并且是在Python2.x下执行的
我知道有人已经部分地说明了这一点,但我认为这可能有助于让Python新手更清楚地了解为什么使用“utf-8”参数,因为提问的人注意到他们不知道该参数的用途。
来到这里的任何人都可能会发现,这对理解为什么会有“utf-8”的争论很有帮助。
试试看
相关问题 更多 >
编程相关推荐