【发布时间】:2021-10-08 18:34:20
【问题描述】:
我目前正在开发一个可与 facebook api 配合使用的 python 应用程序。众所周知,facebook 喜欢自己的技术,并且正在使用 zstd 进行数据压缩。
问题:facebook 正在返回带有正常 json 的未压缩响应,或者如果响应更长,它正在使用 zstd 压缩 json 响应。
我当前的代码是这样的:
import zstd
import json
def handle_response(response)
json = None
try:
json = json.loads(zstd.decompress(response.content))
except:
json = json.loads(response.text)
return json
我目前想知道,是否有更干净的方法可以做到这一点,甚至检测 zstd。
【问题讨论】:
-
如果你用某种特定类型的异常替换裸露的
except,你所拥有的将是“更干净”的。 -
压缩数据会有一个file signature,有时称为幻数来标识它。有一个 document that describes the format 并给出了
zstd幻数。有ways to check the magic number in python。
标签: python json python-requests compression zstd