2017-03-08 41 views
9

我有以下非常基本的代碼拋出;類型錯誤:JSON對象必須str的,而不是「字節」TypeError:JSON對象必須是str,而不是'bytes'

import requests 
import json 

url = 'my url' 
user = 'my user' 
pwd = 'my password' 

response = requests.get(url, auth=(user, pwd)) 

if(myResponse.ok): 
    Data = json.loads(myResponse.content) 

我嘗試解碼設定爲數據變量,如下所示,但它會引發同樣的錯誤; jData = json.loads(myResponse.content).decode('utf-8')

有什麼建議嗎?

+0

只需使用'response.json()'。手動,你需要'json.loads(myResponse.content.decode('utf-8'))' –

回答

15
json.loads(myResponse.content.decode('utf-8')) 

你只是把它放錯了順序,無辜的錯誤。

4

讓請求您對其進行解碼:

data = response.json() 

如果沒有正確設置Content-Type頭(這是服務器的責任,其設置爲application/json),則有時response.json不起作用。在這種情況下,您可以從response.content獲取字節,並從response.text獲取文本。

相關問題