二进制数据base64编码的Python字符串给出TypeError
我正在努力解决以下问题: 我有一个包含以下二进制数据的数组(加密后): 我想对它进行base64编码 当我这样做的时候二进制数据base64编码的Python字符串给出TypeError,python,python-3.x,base64,binary-data,binascii,Python,Python 3.x,Base64,Binary Data,Binascii,我正在努力解决以下问题: 我有一个包含以下二进制数据的数组(加密后): 我想对它进行base64编码 当我这样做的时候 binascii.b2a_base64(data) 我得到了TypeError:需要一个类似字节的对象,而不是'str' 我迫切需要一个如何处理此类数据的建议。请帮忙 更新:我修复了数据类型,当然-我的问题与单个字符串有关你没有二进制数据,你有文本字符串 首先将文本转换为字节;您可以通过编码来实现。看起来您生成的Unicode代码点与拉丁语1字节一一对应,因此您可以对该编解码
binascii.b2a_base64(data)
我得到了TypeError:需要一个类似字节的对象,而不是'str'
我迫切需要一个如何处理此类数据的建议。请帮忙
更新:我修复了数据类型,当然-我的问题与单个字符串有关你没有二进制数据,你有文本字符串 首先将文本转换为字节;您可以通过编码来实现。看起来您生成的Unicode代码点与拉丁语1字节一一对应,因此您可以对该编解码器进行编码:
for value in array:
bytes_value = value.encode('latin-1')
base64_encoded = binascii.b2a_base64(bytes_value)
然而,什么编码适合您的文本取决于它最初的生成方式。如果您正在加密,您可能希望修复加密代码,使其不生成文本,而是直接生成字节。您不能将列表传递到
b2a\u base64()
,而异常显示您传递的是字符串;您是否使用了binascii.b2a_base64(数组[0])
?
for value in array:
bytes_value = value.encode('latin-1')
base64_encoded = binascii.b2a_base64(bytes_value)