从JSON Feed中抓取麻烦

时间:2014-10-07 17:32:41

标签: python json jsonp

我之前问过类似的问题

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对象

我不明白为什么。当我将两个网址都放入浏览器时,它们看起来完全一样。

2 个答案:

答案 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])

似乎有用