Python 带有二进制数据库 base64 编码的字符串给出 TypeError

Python string with binary data base64 encode gives TypeError

我正在努力解决以下问题:

我有一个包含以下二进制数据的数组(加密后):

data = '\x03×ÿ\x7f*J\x9aÖ¯AÀM|ü{R2+M°ø2\x83.\x1f@µ³U¡VT'

我要base64编码

当我做的时候

binascii.b2a_base64(data)

我得到 TypeError: a bytes-like object is required, not 'str'

我迫切需要如何处理此类数据的建议。请帮忙!

更新:我修复了数据类型,当然 - 我的问题与单个字符串有关

您没有二进制数据,您有文本字符串。

首先将文本转换为字节;你可以通过编码来做到这一点。它看起来好像您生成了与 Latin-1 字节一对一对应的 Unicode 代码点,因此您可以编码为该编解码器:

for value in array:
    bytes_value = value.encode('latin-1')
    base64_encoded = binascii.b2a_base64(bytes_value)

但是,哪种编码适合您的文本首先取决于它的生成方式。如果您正在加密,您可能需要修复您的加密代码以不生成文本而是直接生成字节。