【问题标题】:Unable to read json response from requests library无法从请求库中读取 json 响应
【发布时间】:2019-06-16 22:47:07
【问题描述】:

我正在向网站发出发布请求,并试图阅读它给我的回复。但是,当我尝试阅读响应时,它不可读。我不知道这是否重要,但我也在与该网站进行会话。

我尝试使用 resp.decode("utf-8")resp.json()resp.text 将响应转换为 ascii。其中没有一个起作用,并导致无法读取的文本或错误提示无法对其进行解码。我已确保收到 2​​00 响应代码,并且返回标头指出 content-typeapplication/json

import requests, json

resp = sesh.post(play_url, headers=headers, json=data)

print(resp.json())

当我尝试打印resp.json() 时出现我收到的错误,错误是,

json.decoder.JSONDecodeError: Expecting value: line 1 column 1 (char 0)".

网站响应示例:

b'!\xfc\x08\x00 \xbe\xb8_*\xfft\x0e\xd2r\xdc\xf1\xc8m\xc2|\xc8\x11\xb5\x03\x1a\xb8)v\xc4\x02\x0b0\xe6w,{\x0f\xe4\xbc\x03\x96``\xb5\xd1\xa6szi\xa2\x87>b\xb0\x85\xee\xe4X\xfe\x17\xadV\xc8/\x92\xf9\x1f\x02\x97}\xb0\xc9\x98\xa8-\x08\x1c\xca\x10L\xdff \xb8\x90 \x15\x19U\xc2\xae<\xec6[\xe4\\x84\xf7g\x88\xf1)\x13\xea\xf6\xae\x05\xa8\x0c\xf1\x02\xf7\xa3\xdb6\xe7N\xb7C\xb86E\x19(\x08\x0fsrZ\xad\x13\x85\x07 \x18\x0f\xc7\xeb\x0e\x83\xf0\xb9;\xdb\xbc\x0c\xc2\x8f\x8bu:<\x96\xce\x977xn\x14Q\xfc$\x1f\xc6\xd1\x18\xcb\xfc\x0f:\xf9\xd4t\x87\xeb\xa5\x0eq\x7fVx\xadM}/\x10Q\xd3\x06z\x12\x05\x1a\xed \xbd\xf7\x8d\x0b1\x05o\x1b\x10b\xaaB\xc67\x7f\x9e\x9b\x93B\xf0\xa2\x1b=7\xf7o\xd0\xe3\x0b\x905C\x14\x98\x9d\xbf@\x12\x13>\xb1/\x10f?\x8cLH6\xe6\xcaX\xcb\x99\xb4\x90\x8a\x02\x10\xf6\xc1\xe3\n\xd7\xb5\x9f:#i\xf8\x8b\x96\xb2\xbb\x9cG\x1b\xd5($\xfd!>\x95\x9e\x94\xff\xff\xff\x07'

【问题讨论】:

    标签: json python-3.x python-requests


    【解决方案1】:

    问题是应用程序类型没有规定编码类型。响应标头通过此响应 "accept-encoding" : "br" 定义编码类型。

    为了解码响应,我使用了以下代码: brotli.decompress(resp.content)

    resp 变量是来自网站的响应。

    【讨论】:

      猜你喜欢
      • 2021-02-07
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 2021-05-14
      • 2017-06-26
      • 1970-01-01
      • 2016-07-31
      • 2012-12-07
      相关资源
      最近更新 更多