不能解码JSON对象(请求+熊猫)

时间:2019-02-27 02:18:09

标签: python pandas python-requests

正在学习与请求库和熊猫配合使用的经验,但是即使在线上有大量示例,也一直在努力超越起点。

我正在尝试使用GET请求从下面的URL中提取NBA射击数据,然后将其转换为DataFrame:

while(keys.hasNextLine()) {
    if (keys.hasNextInt()) { //validation that will read lines until it see's an integer and stores that number
        multiplier = keys.nextInt(); //Stores the number from text
    } else {
        words += keys.nextLine();//Stores the lines of text
        if(words.endsWith(words.substring(words.lastIndexOf(" ")+1))) {
            words += '\n';
        }
    }
}

但是我从第2行“ response = requests.get(url)”开始出现此错误

ValueError:无法解码JSON对象

我想我缺少一些基本的知识,感谢任何调试帮助!

1 个答案:

答案 0 :(得分:2)

问题是您使用错误的URL来获取数据。

您使用的URL用于HTML,它负责网站的布局。数据来自另一个URL,该URL以JSON格式获取。

您要查找的数据的正确URL是:

https://stats.nba.com/stats/shotchartdetail?CFID=33&CFPARAMS=2017-18&ContextMeasure=FGA&DateFrom=&DateTo=&EndPeriod=10&EndRange=28800&GameID=&GameSegment=&GroupQuantity=5&LastNGames=0&LeagueID=00&Location=&Month=0&OnOff=&OpponentTeamID=0&Outcome=&PORound=0&Period=0&PlayerID=201935&PlayerPosition=&RangeType=0&RookieYear=&Season=2017-18&SeasonSegment=&SeasonType=Regular+Season&StartPeriod=1&StartRange=0&TeamID=0&VsConference=&VsDivision=

如果在浏览器上运行它,则只能看到原始JSON数据(正是从代码中获得的数据),并使它正常工作。

此博客文章介绍了查找数据URL的方法,尽管自从撰写该文章以来,API发生了一些变化,但该方法仍然有效: http://www.gregreda.com/2015/02/15/web-scraping-finding-the-api/