1 回答

TA貢獻(xiàn)1824條經(jīng)驗(yàn) 獲得超6個(gè)贊
有多種方法可以從通過(guò)requests
庫(kù)獲得的響應(yīng)中解碼 json。
我希望您得到response
與此類似的代碼:
response?=?requests.get(url)
首先,最底層,但可靠且易于調(diào)試,它使用的response.content
是響應(yīng)的原始正文字節(jié):
result?=?json.loads(response.content.decode('utf-8'))
第二個(gè)用途response.text
基本上是response.content
使用庫(kù)的最佳匹配編碼自動(dòng)轉(zhuǎn)換為文本字符串requests
:
result?=?json.loads(response.text)
最高級(jí)和最簡(jiǎn)單的,requests
需要全力以赴地完成正確的轉(zhuǎn)換工作:
result?=?response.json()
其中一種方法應(yīng)該有效。
另外,在收到響應(yīng)后,您始終需要檢查狀態(tài)代碼,因?yàn)?code>requests不會(huì)在非 200 狀態(tài)代碼上引發(fā)異常,因此您需要在解碼之前執(zhí)行assert response.status_code == 200
或。response.raise_for_status()
狀態(tài)代碼不等于 200 始終意味著服務(wù)器響應(yīng)錯(cuò)誤并且響應(yīng)不包含 json。
添加回答
舉報(bào)