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

标签 python json gzip

我有一个返回 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

最佳答案

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

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

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

关于python - 如何将 gz 文件附加到 python 中的 json 对象?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/70898627/

相关文章:

python - 在两个连续执行的函数之间添加延迟

c# - Json 从实体返回额外的值

jquery - 如何获取DataTables的一行数据?

java - 解压缩大文件(~80 GB)- 使用 Java 或 shell 脚本

java - 从 Base64 和 GZIP 解压缩位图

hadoop - 将多个.deflate文件转换为ubuntu中的一个gzip文件

python - 带有 mod_wsgi 的 Apache24-x86-VC9 说, "AH00419: master_main: create child process failed. Exiting."并且不会启动

python - 函数矩阵、SymPy 和 SciPy 的数值积分

python - 如何在图像的高斯拉普拉斯算子中找到零交叉点

java - 使用Gson 2.3.1解析Json文件