我有一个返回gz文件的api。运行api的应用程序只接受json格式。有办法将返回的gz文件附加到json对象吗?将gz文件转换为base64格式,然后创建json对象(如{ " file ":“base64 format”})是否有效?
print(json.dumps({'file': base64.b64decode(response_alert.content)}))我知道错误了
Object of type bytes is not JSON serializable发布于 2022-01-29 00:57:49
字符串编码为str→bytes,解码为bytes→str。Base64正好相反,因为它将二进制数据编码为字符,而不是将字符编码为二进制数据。但是,由于它的许多用例都涉及到诸如SMTP这样的ASCII协议,因此base64.b64encode实际上需要和返回 bytes (后一种情况下是bytes)。因此你想要
json.dumps(dict(file=base64.b64encode(response_alert.content).decode()))它利用了支持ASCII文本的默认编码(UTF-8)。另一方面,您不必麻烦地将代码编码回bytes,因为str被base64.b64decode所接受。
https://stackoverflow.com/questions/70898627
复制相似问题