如何将 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
字符串编码为str
→bytes
,解码为bytes
→str
。 Base64 正好相反,因为它将二进制数据编码为字符,而不是将字符编码为二进制数据。但是,由于它的许多用例都涉及 SMTP 等 ASCII 协议,因此 base64.b64encode
实际上需要 returns bytes
(后一种情况下为 ASCII)。因此你想要
json.dumps(dict(file=base64.b64encode(response_alert.content).decode()))
它利用支持 ASCII 文本的默认编码 (UTF-8)。另一方面,您不必费心编码回 bytes
,因为 str
被 base64.b64decode
接受。
我有一个 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
字符串编码为str
→bytes
,解码为bytes
→str
。 Base64 正好相反,因为它将二进制数据编码为字符,而不是将字符编码为二进制数据。但是,由于它的许多用例都涉及 SMTP 等 ASCII 协议,因此 base64.b64encode
实际上需要 returns bytes
(后一种情况下为 ASCII)。因此你想要
json.dumps(dict(file=base64.b64encode(response_alert.content).decode()))
它利用支持 ASCII 文本的默认编码 (UTF-8)。另一方面,您不必费心编码回 bytes
,因为 str
被 base64.b64decode
接受。