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)
但是,哪种编码适合您的文本首先取决于它的生成方式。如果您正在加密,您可能需要修复您的加密代码以不生成文本而是直接生成字节。
我正在努力解决以下问题:
我有一个包含以下二进制数据的数组(加密后):
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)
但是,哪种编码适合您的文本首先取决于它的生成方式。如果您正在加密,您可能需要修复您的加密代码以不生成文本而是直接生成字节。