我之前问过类似的问题
python JSON feed returns string not object
但是我遇到了一些麻烦并且不了解它。
大约一半的日期工作并返回一个JSON对象
例如2013年11月9日的作品
url = 'http://data.ncaa.com/jsonp/scoreboard/basketball-men/d1/2013/11/09/scoreboard.html?callback=c'
r = requests.get(url)
jsonObj = json.loads(r.content[2:-2])
但如果我尝试2013年11月11日:
url = 'http://data.ncaa.com/jsonp/scoreboard/basketball-men/d1/2013/11/11/scoreboard.html?callback=c'
r = requests.get(url)
jsonObj = json.loads(r.content[2:-2])
我收到此错误
ValueError:无法解码JSON对象
我不明白为什么。当我将两个网址都放入浏览器时,它们看起来完全一样。
答案 0 :(得分:1)
第二个Feed中的JSON实际上是无效的JSON。通过删除回调函数并通过以下方式找到它:http://jsonlint.com/
要自己查看,请搜索以下ID:336252
该ID上方的行包含一行中的两个逗号,JSON规范不允许这样做。
我的猜测是data.ncaa.com上的服务器正在尝试生成JSON而不是使用JSON库。您应该联系站点管理员并让他们知道此错误。
答案 1 :(得分:0)
使用demjson
demjson.decode(r.content[2:-2])
似乎有用