使用python 2.7.3从yql finance中检索json数据。这是代码:
import urllib
import json
response = urllib.urlopen("http://query.yahooapis.com/v1/public/yql?q=SELECT%20*%20FROM%20yahoo.finance.keystats%20WHERE%20symbol%3D'T'&env=store%3A%2F%2Fdatatables.org%2Falltableswithkeys")
pyresponse = json.load(response)
print pyresponse
我收到以下错误:
ValueError:无法解码JSON对象
答案 0 :(得分:2)
json.load中可能缺少“s”。 (json.load-> json.loads)
要打印json对象,您可以考虑使用 json.dumps 将对象转换为字符串。
答案 1 :(得分:1)
YQL的默认数据类型是XML。要更改此设置,请将format
设置为JSON。
http://query.yahooapis.com/v1/public/yql?q=SELECT%20*%20FROM%20yahoo.finance.keystats%20WHERE%20symbol%3D'T'&env=store%3A%2F%2Fdatatables.org%2Falltableswithkeys&format=json
此外,正确的函数称为loads
而不是load
(json.loads(response)
)。