我目前正在开发一个 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
我目前想知道是否有更干净的方法来执行此操作甚至检测 zstd。
你正在做的事情很好。
我想,您可以检查流是否以四个字节开头28 b5 2f fd
。如果没有,则它不是 zstd 流。如果是的话,它may是一个 zstd 流。在后一种情况下,您将尝试解压缩,如果失败,您将退回到仅复制输入。
事实证明,这与您已经在做的事情完全相同,因为从第一件事开始zstd.decompress
所做的就是寻找那个签名。
本文内容由网友自发贡献,版权归原作者所有,本站不承担相应法律责任。如您发现有涉嫌抄袭侵权的内容,请联系:hwhale#tublm.com(使用前将#替换为@)