gpt4 book ai didi

Python 3错误: TypeError: Can't convert 'bytes' object to str implicitly in string that has more than 3 elements

转载 作者:行者123 更新时间:2023-12-01 04:11:28 25 4
gpt4 key购买 nike

我想制作 SHA256 哈希器,将输入和输出保存在文本文件中。我在 stackoverflow 上搜索了答案,但没有成功。我希望它写在文本文件中:

all = str("At: " + date + " you have encrypted: " + text + " into:" + hex_dig)
text_file.write(together)

虽然日期看起来像这样:

date = time.strftime("%Y-%m-%d %H:%M:%S")

它在示例的第一行中给了我这个错误:TypeError:无法将“bytes”对象隐式转换为 str

最佳答案

我猜测 hex_dig 是一个字节对象(您是否使用 digest 而不是 hexdigest 来获取哈希值?)。如果是这种情况,只需使用正确的函数即可解决此问题:

sha256_hasher = hashlib.sha256()
sha256_hasher.update(your_data_goes_here)
hex_dig = sha256_hasher.hexdigest()

其他,更一般地说,您尝试将 strbytes 对象连接在一起。你不能那样做。您需要将字节对象转换为字符串。如果它只包含文本数据,您可以对其进行解码:

hex_dig = hex_dig.decode("ascii")

或者,如果它只包含字节并且您想查看十六进制,您可以使用 binascii.hexlify (您仍然需要解码,因为它返回一个字节):

import binascii
hex_dig = binascii.hexlify(hex_dig).decode("ascii")

顺便说一句,您不需要在 str 函数调用中包装字符串,仅当您想要获取尚未存在的对象的字符串表示形式时才需要这样做字符串。你拥有的(或者你想要的)已经是一个字符串,所以这是一个多余的调用。你不能尝试连接不同类型的东西并将所有内容包装在一个 str cal 中并希望 python 能为你解决它 - 它不会(也不应该因为它不明确 - 显式优于隐式)。

关于Python 3错误: TypeError: Can't convert 'bytes' object to str implicitly in string that has more than 3 elements,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/34880923/

25 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com