【发布时间】:2013-06-25 15:41:08
【问题描述】:
您好,我有问题,因为我想拥有带有二进制文件的 xml 文件。 问题在于 base64 编码我不知道如何编码图像并添加到字符串。 我想在那之后解析这个并解码图像。
stringResult = ResultXMLTag.ROOT_BEGIN + '\n'
f = open('id_'+str(1)+'.png','rb+')
stringResult += ResultXMLTag.RESULT_BEGIN+' '+'ID=\'1\'>\n'
stringResult += ResultXMLTag.CDATA_BEGIN+'\n'
stringResult += base64.b64encode(f.read())
stringResult2 = '\n'+ ResultXMLTag.CDATA_END+'\n'
stringResult2 += ResultXMLTag.RESULT_END+'\n'
stringResult2 += ResultXMLTag.ROOT_END
return stringResult + stringResult2
data = ET.fromstring(self.downloadData(connection))
for result in data.findall('./RESULT'):
_id = result.get('ID')
out = open('id_'+_id+'.png','wb+')
out.write(base64.decode(result.findtext('').encode()))
EDIT 错误符合 base64 “TypeError: Can't convert 'bytes' object to str implicitly”
编辑示例
>>> x = b'cat' + (base64.b64encode(b'dog'))
>>> x
b'catZG9n'
第二版
>>> x = 'cat' + str(base64.b64encode(b'dog'))
>>> x
"catb'ZG9n'"
我应该使用女巫版本来发送图像?我认为我所有的问题都是因为你如何附加字符串和字节。说编码图像然后解码很简单,但这不是我的情况。
【问题讨论】:
-
有什么问题?您应该能够将 base64 编码字符串与非编码字符串连接起来。你有错误吗?这是什么?
-
TypeError: Can't convert 'bytes' object to str 隐式我不知道为什么我不能连接那个:/
-
这个错误在哪一行?
-
我会重写代码,你会看到的。
-
查看我的更新,可能是downloadData问题
标签: python encoding python-3.x