2017-03-08 43 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获取文本。

相关问题