2014-10-07 3 views
1

я задал подобный вопрос ранеенеприятности соскоб из JSONP кормить

python JSON feed returns string not object

но я имею немного больше проблем, и не понимаю.

Около половины дат это работает и возвращает объект JSON

, например, 9 ноября 2013 работает

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

, но если я попытаюсь 11 ноября 2013:

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

I получить эту ошибку

ValueError: No JSON object co uld будет расшифрован

Я не понимаю, почему. Когда я помещаю оба URL в браузер, они выглядят точно так же.

ответ

0

Использование demjson

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

похоже на работу

1

JSON во втором корме, по сути, недействительный JSON. Найдено, убрав функцию обратного вызова и запустить его с помощью: http://jsonlint.com/

Чтобы увидеть для себя, поиск следующей ID: 336252

линии чуть выше этого ID содержат две запятые подряд, что недопустимую спецификация JSON.

Я предполагаю, что сервер на data.ncaa.com пытается сгенерировать JSON самостоятельно, а не использовать библиотеку JSON. Вам следует связаться с администратором сайта и сообщить им об этой ошибке.

Смежные вопросы