如何检测zstd压缩?

2023-12-19

我目前正在开发一个 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(使用前将#替换为@)

如何检测zstd压缩? 的相关文章

随机推荐

  • NuGet 不复制配置文件

    我现在尝试了很多不同的事情 但似乎都没有达到预期的效果 我想与我的库共享一个示例配置 或图像或其他 文件 有人可以使用它并从中派生 我尝试默认为只是为了这样做 我尝试通过以下方式将其包含在 nuget 包中 nuspec并通过 csproj
  • C++ 应用程序中的 QML 或反之亦然 [关闭]

    Closed 这个问题是基于意见的 help closed questions 目前不接受答案 考虑一个简单的 GUI 显示相当复杂的计算输出的情况 现在我想使用编写一个漂亮的自定义 GUIQML 我还想写我的后台应用程序QT C 我坐在
  • 通过互操作打开文档时如何使 word 可见?

    我想通过互操作打开一个word文档 并且word必须在该过程中可见 它看起来相当简单 因为在word文档的打开函数中有一个名为 visible 的参数 但是word在后台 什么我失踪了吗 static void Main string ar
  • .NET (C#) 中的“StandardIn 尚未重定向”错误

    我想使用标准输入做一个简单的应用程序 我想在一个程序中创建一个列表并在另一个程序中打印它 我想出了以下内容 我不知道 app2 是否有效 但是在 app1 中我收到异常 StandardIn 尚未重定向 在 writeline 上 在 fo
  • 如何修复 WordPress 自定义主题以与插件一起使用?

    这是我第一次尝试编写自定义 WordPress 主题 而且我已经快完成了 与任何事物一样 存在一些错误 但我尝试了几种不同的选项来修复它们 但没有成功 链接为 www studiosimplicit com wp 我的第一个问题是事件页面上
  • 我的对象在 Three.js 中不反射光线

    我在 Three js 场景中有一些基于 CubeGeometry 的网格 它们都反映了我在全局使用的 PointLight 但其中之一 仅用 THREE Geometry 通过代码添加顶点和面 手工 制作的 没有反映出来 即使它没有颜色
  • 使用 openssl C 进行 AES(aes-ige-128、aes-ige-192、aes-ige-256)加密/解密

    最近 我终于 在 stackoverflow 用户 WhozCraig 的帮助下 开始在 CBC 模式下使用 AES 现在 我想做完全相同的事情 但使用 AES IGE 我看了一下openssl 1 0 1e test igetest c并
  • 获取当前页面并移动到Primeng数据表中的特定页面

    我正在使用 primefaces primeNg 的数据表 我可以获取当前所在页面并以编程方式将数据表设置为特定页面吗 我看到数据表使用了分页组件 但是如何使用 ViewChild访问它 任何帮助将不胜感激
  • 在 Objective-C 类中使用时,无法在调试区域中看到 Swift 对象层次结构

    我的问题可能很简单 但我却迷失了方向 任何评论 想法 帮助 预测都会非常有用 这是我的课程 试用SwiftClass swift import Foundation objc public class TrialSwiftClass NSO
  • CAML > 通过 URL 获取项目

    此 CAML 是否可以正常工作 我用 u2u 尝试过 但它不显示 URL 列 我收到此错误 System ApplicationException 一个或多个字段类型未正确安装 请转到列表设置页面删除这些字段
  • 为什么 crypt/blowfish 使用两种不同的盐生成相同的哈希值?

    这个问题与 PHP 的实现有关crypt http php net manual en function crypt php 对于这个问题 salt的前7个字符不算在内 所以一个salt 2a 07 a 的长度被认为是 1 因为它只有 1
  • SVN 外部意外状态问题

    我正在尝试SVN External 我想要做的是拥有一个外部文件夹并将库从那里复制到我的 Lib 文件夹中 I went to SVN Externals and there added the lib folder and path to
  • 我应该始终使用 override 上下文关键字吗?

    我知道override引入 contextual 关键字是为了编写更安全的代码 通过检查virtual具有相同签名的函数 但我对此感觉不太好 因为它对我来说似乎是多余的override每次我想覆盖virtual功能 不使用是一个坏习惯吗ov
  • 如何在不显示窗口的情况下运行PowerShell脚本?

    如何才能运行一个电源外壳 http en wikipedia org wiki Windows PowerShell脚本而不向用户显示窗口或任何其他标志 换句话说 脚本应该在后台安静地运行 而不向用户发出任何信号 不使用第三方组件的答案需额
  • 使用键打印字典中的最高值[重复]

    这个问题在这里已经有答案了 我的字典是这样的 A 4 B 10 C 0 D 87 我想用它的键找到最大值 用它的键找到最小值 输出将是这样的 最大 87 键是D 分钟 0 键是C 我知道如何从字典中获取最小值和最大值 有没有办法在一个语句中
  • IDictionary 或 NameValueCollection

    我目前正在编写一个接口 允许应用程序将异常数据发送到中央存储库以用于支持目的 我对如何传递额外的上下文数据感到困惑 public interface IExceptionNotifier void Notify Exception ex N
  • 通知中的音乐播放器控制

    如何在 Android 中设置带有播放 暂停 下一个和上一个按钮的通知 我是 Android 新手 也是堆栈溢出新手 所以请耐心听我说 我设置了歌曲开始播放时的通知 如下所示 SuppressLint NewApi public void
  • MemoryError - 如何使用 Python 通过 Google Drive SDK 下载大文件

    从 Google 云端硬盘下载大文件时 我的内存不足 我假设tmp content read 1024 不起作用 但如何解决呢 谢谢 def download file service file id drive file service
  • bat文件中设置cygwin环境变量

    我需要设置几个应该在 cygwin shell 中可用的环境变量 我尝试跑步 c Program Files x86 Microsoft Visual Studio 10 0 VC bin amd64 vcvars64 bat在 bashr
  • 如何检测zstd压缩?

    我目前正在开发一个 python 应用程序 它可以与 facebook api 一起使用 众所周知 facebook热爱自己的技术 正在与zstd合作进行数据压缩 问题 facebook 要么返回带有正常 json 的未压缩响应 要么如果响