ValueError: ни один объект JSON не может быть декодирован
Я пытаюсь следующий пример кода из API Betfair:
import requests
import json
url="https://api.betfair.com/betting/json-rpc"
header = { 'X-Application' : appKey, 'X-Authentication' : sessionToken, 'content-type' : 'application/json' }
jsonrpc_req='{"jsonrpc": "2.0", "method": "SportsAPING/v1.0/listCompetitions", "params": {"filter":{ "eventTypeIds" : [1] }}, "id": 1}'
print json.dumps(json.loads(jsonrpc_req), indent=3)
print " "
response = requests.post(url, data=jsonrpc_req, headers=header)
print json.dumps(json.loads(response.text), indent=3)
Я продолжаю получать ValueError: No JSON object could be decoded
,
2 ответа
Опасность догадки здесь:
https://api.betfair.com/betting/json-rpc возвращает 404, когда делает стрит GET
, Вы также можете увидеть результат в браузере. Хороший API возвращает правильный код ошибки (401 или 403), если это проблема с заголовком. Вы уверены, что вызываете правильную конечную точку?
Для устранения неполадок нам понадобится дополнительная информация. Каков результат изменения вашей последней строки на:
print response.text
Глядя на ваше обновление, вы видите то же самое, что и я: The requested resource (/betting/json-rpc) is not available.
Либо вы отправляете неправильный заголовок в вашем POST
или, скорее, неправильный URL. Делая небольшое копание, я думаю, что правильный:
Код gitub Betfair, кажется, более актуален - я только что попробовал пример кода Python на их аккаунте, и он работал для меня. Вам нужно установить appKey и sessionToken аналогично ответу на предыдущий тесно связанный вопрос. Я бы проигнорировал устаревший пример кода, на который вы изначально ссылались.