【问题标题】:Python 3.11 base64 error " a bytes-like object is required, not 'list' "Python 3.11 base64 错误 \" 需要一个类似字节的对象,而不是 \'list\' \"
【发布时间】:2022-12-04 23:39:53
【问题描述】:

我试着做一个非常基本的密码管理器有点程序,它是最基本的,我正在使用 base64 对要保存的密码进行编码,但使用 `

encode = base64.b64encode(read_output).encode("utf-8")
        print("Encrypted key: ",encode)
        decode = base64.b64decode(encode).decode("utf-8")
        print(decode)

gives me an error ;

File "c:\Users\Someone\OneDrive\Documents\VS Codium\pswrdmgr.py", line 152, in <module>
    encode = base64.b64encode(read_output).encode("utf-8")
             ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^
  File "C:\Users\Someone\AppData\Local\Programs\Python\Python311\Lib\base64.py", line 58, in b64encode
    encoded = binascii.b2a_base64(s, newline=False)
              ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^
TypeError: a bytes-like object is required, not 'list'

` 有什么建议么 ?任何帮助深表感谢 !

我尝试使用其他容器,如字典和元组,认为它们可能是困扰 base64 的问题,但问题仍然存在。

【问题讨论】:

  • 好吧,Python 错误告诉您 read_output 是一个列表,而不是字节对象。所以你需要修复base64.b64encode方法的输入。注意:请尽可能多地说明有关问题的信息(包括输入)。

标签: python python-3.x


【解决方案1】:

您应该先编码,然后将其传递给函数:

(假设read_output 是列表类型,它也适用于所有基本类型对象)

encode = base64.b64encode(str(read_output).encode("utf-8"))
print("Encrypted key: ",encode)
decode = base64.b64decode(encode).decode("utf-8")
print(decode) ```

【讨论】:

    猜你喜欢
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 2020-07-16
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 2017-08-31
    相关资源
    最近更新 更多