从JSONP源中爬取有问题

2024-05-15 00:07:06 发布

您现在位置:Python中文网/ 问答频道 /正文

我之前也问过类似的问题

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

我不明白为什么。当我把两个网址放进浏览器时,它们看起来完全一样。你知道吗


Tags: 对象comjsonhttpurldatahtmlcallback
2条回答

实际上,第二个提要中的JSON是无效的JSON。通过删除回调函数并运行它来发现:http://jsonlint.com/

要亲自查看,请搜索以下ID:336252

该ID上方的行在一行中包含两个逗号,这是JSON规范所不允许的

我猜服务器在数据.ncaa.com正在尝试生成JSON本身,而不是使用JSON库。您应该与站点管理员联系,让他们知道此错误。你知道吗

使用demjson

demjson.decode(r.content[2:-2])

似乎有用

相关问题 更多 >

    热门问题