2016-07-15 60 views
0

我想从我的api返回一个json对象。使用python的请求框架从api获取json对象。内容类型在运行时返回application/json,因此内容为json。Python使用请求来执行GET来接收应用程序/ json对象

url = 'theUrl' 
response = requests.get(url) 
print(response.headers['content-type']) 
data = json.load(response) 

运行时返回脚本:

提高ValueError异常( “无JSON对象可以解码”) ValueError异常:无JSON对象可以被解码。

执行请求时,还会出现另一个问题api会引发错误。 API的错误日志产生的

message.internal.WriterInterceptorExecutor错误:没有找到

我已经尝试了各种不同的方法来此,但似乎无法接受的媒体类型= {text/html的} MessageBodyWriter json对象。任何人遇到类似问题?

+1

你的意思是有'数据= json.loads(response.json)'? – ritlew

回答

0

最后两行是没有意义的。您拨打response.json(),然后忽略返回值,然后尝试在响应本身上调用json.loads(),而不是实际的响应内容。

而不是那两条线,只是做data = response.json()已经返回反序列化的数据。

+0

抱歉,当我写这个问题时,第一个电话是一个错字。我添加了 data = json.loads(response.json) 获得一个新的错误,但它更有帮助。这很新鲜。谢谢你们 – Zoidburg

0

requests.get的返回值不是一个字符串,而是一个对象。响应主体是在财产的.text,从而:

data = json.loads(response.text) 

和你做

+0

从现在的API收到此错误: MessageBodyWriter未找到媒体类型=应用程序/ XML, 你们有很多的帮助,虽然相信我可以计算自己休息感谢您的投入和欢呼声@Daniel罗斯曼 – Zoidburg