Python 解码json对象内部的Gzip http响应

Python 解码json对象内部的Gzip http响应,python,gzip,Python,Gzip,我正在尝试使用以下代码段从HTTP post获取数据: import request # Using @ to signify personal info url = "@@@@@" querystring = {"user":"@@@@@yahoo.com"} headers = { 'token': 1234, 'content-type': "application/x-www-form-urlencoded", 'host': "@@@", 'con

我正在尝试使用以下代码段从HTTP post获取数据:

import request

# Using @ to signify personal info
url = "@@@@@"

querystring = {"user":"@@@@@yahoo.com"}

headers = {
    'token': 1234,
    'content-type': "application/x-www-form-urlencoded",
    'host': "@@@",
    'connection': "Keep-Alive",
    'accept-encoding': "gzip",
    'content-length': "0",
    'cache-control': "no-cache"
}

response = requests.request("POST", url, headers=headers,     params=querystring)

print(response.text)
我得到以下结果(…是“数据”字符串的其余部分):

与我在stackoverflow上发现的所有其他问题不同,感兴趣的gzip数据存在于json响应中。json对象本身没有被压缩。我试过了

zlib.decompress(response.json().get("data"),15 + 32)
但是,我得到了错误

    TypeError: a bytes-like object is required, not'str'
我是否要正确处理解码?我看到很多关于解码gz文件的文档,但这只是一个经过gz压缩的字符串


额外尝试:尝试

zlib.decompress(response.json().get("data").encode(), 16 + zlib.MAX_WBITS)
给我一个错误:

incorrect header checkk

首先需要将字符串转换为字节数组。这可以通过两种方式实现

bytes = bytes(your_string)


首先需要将字符串转换为字节数组。这可以通过两种方式实现

bytes = bytes(your_string)


这一答案的作者是:

事实证明,在使用注释中@coldspeed建议的格式解压之前,需要先对字符串进行base64解码

zlib.decompress(base64.b64decode(response.json().get("data")), 16 + zlib.MAX_WBITS)

这一答案的作者是:

事实证明,在使用注释中@coldspeed建议的格式解压之前,需要先对字符串进行base64解码

zlib.decompress(base64.b64decode(response.json().get("data")), 16 + zlib.MAX_WBITS)

尝试
zlib.decompress(response.json().get(“data”).encode(),15+32)
Hmm。。。我得到一个错误:“不正确的标题检查”。我确信数据是有效的gz,因为我可以使用在线解码器,例如,获得正确的解码字符串。是的。尝试
zlib.decompress(response.json().get(“data”).encode(),16+zlib.MAX_WBITS)
上一个标题似乎不正确。相同的“不正确的标题检查”:(有什么方法可以共享压缩的数据吗?这有助于调试。尝试
zlib.decompress(response.json().get(“data”).encode(),15+32)
Hmm…我收到一个错误:“不正确的头检查”。我确信数据是有效的gz,因为我可以使用在线解码器,例如获取正确的解码字符串。是的。尝试
zlib.decompress(response.json().get(“data”).encode(),16+zlib.MAX_WBITS)
上一个头似乎不正确。相同的“不正确的头检查”:(是否有一种方法可以共享压缩数据?这将有助于调试。