myn*_*god 4 python compression json python-requests zstd
我目前正在开发一个 python 应用程序,它可以与 facebook api 一起使用。众所周知,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
Run Code Online (Sandbox Code Playgroud)
我目前想知道是否有更干净的方法来执行此操作甚至检测 zstd。
你正在做的事情很好。
我想,您可以检查流是否以四个字节开头28 b5 2f fd。如果没有,则它不是 zstd 流。如果是,则它可能是 zstd 流。在后一种情况下,您将尝试解压缩,如果失败,您将退回到仅复制输入。
事实证明,这与您已经在做的事情完全相同,因为zstd.decompress要做的第一件事就是寻找该签名。
| 归档时间: |
|
| 查看次数: |
2675 次 |
| 最近记录: |