You need to enable JavaScript to run this app.
优惠活动
大模型
产品
解决方案
定价
更多

使用Python解压请求Payload时遇UnicodeDecodeError问题求助

问题原因

你base64解码后的字节流并非原始JSON字符串,而是经过gzip压缩的数据——字节0x8b是gzip压缩格式的标志性字节之一(gzip文件头固定为0x1f 0x8b)。直接用json.loads()解析压缩字节会触发编码错误,因为json.loads()默认会尝试将字节按utf-8解码为字符串,但压缩数据不属于合法的utf-8编码内容。

解决方法

先对base64解码后的字节执行gzip解压,再将解压后的字节转为utf-8字符串,最后用json.loads()解析为字典。

代码示例1:使用gzip.decompress快速解压

import base64
import gzip
import json

# 替换为你的实际payload字符串
payload = "你的编码字符串"

payload_in_bytes = base64.b64decode(payload)
# 解压gzip数据
decompressed_bytes = gzip.decompress(payload_in_bytes)
# 解码为字符串后解析JSON
payload_dict = json.loads(decompressed_bytes.decode('utf-8'))

代码示例2:使用GzipFile处理大文件/数据流

如果payload对应的压缩数据较大,推荐用流式解压的方式:

import base64
import gzip
import json
from io import BytesIO

payload = "你的编码字符串"

payload_in_bytes = base64.b64decode(payload)
with gzip.GzipFile(fileobj=BytesIO(payload_in_bytes), mode='rb') as f:
    decompressed_bytes = f.read()
payload_dict = json.loads(decompressed_bytes.decode('utf-8'))

内容的提问来源于stack exchange,提问作者HJA24

相关产品推荐
方舟 Agent Plan

超全模态模型 × Harness 升级,最新支持 Deepseek-V4.1-Flash、GLM-5.3 系列、Doubao-Seedream-5.0-pro、Kimi-K3 (部分), 限时 9.9 元起

最近更新时间:2026.08.01 00:55:17