如何将 gz 文件附加到 python 中的 json 对象?

How to attach a gz file to a json object in python?

我有一个 api 那个 returns 一个 gz 文件。我所在的应用程序 运行 api 仅接受 json 格式。有没有办法将返回的 gz 文件附加到 json 对象? 将 gz 文件转换为 base64 格式,然后创建一个 json 对象,例如 { "file": "base64 格式" } 行吗?

print(json.dumps({'file': base64.b64decode(response_alert.content)}))

我收到错误

Object of type bytes is not JSON serializable

字符串编码为strbytes,解码为bytesstr。 Base64 正好相反,因为它将二进制数据编码为字符,而不是将字符编码为二进制数据。但是,由于它的许多用例都涉及 SMTP 等 ASCII 协议,因此 base64.b64encode 实际上需要 returns bytes(后一种情况下为 ASCII)。因此你想要

json.dumps(dict(file=base64.b64encode(response_alert.content).decode()))

它利用支持 ASCII 文本的默认编码 (UTF-8)。另一方面,您不必费心编码回 bytes,因为 strbase64.b64decode 接受。