ValueError:无法解码JSON对象

时间:2014-01-10 23:27:19

标签: python json python-requests betfair

我正在尝试betfair api中的以下示例代码:

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 个答案:

答案 0 :(得分:2)

这里有猜测:

https://api.betfair.com/betting/json-rpc在进行直线GET时返回404。您也可以在浏览器中看到结果。如果一个好的API返回正确的错误代码(401或403),如果它是一个标题问题。你确定你正在调用正确的端点吗?

要进行问题排查,我们需要更多信息。将最后一行更改为:

的结果是什么?
print response.text

查看您的更新,您会看到与我相同的内容:The requested resource (/betting/json-rpc) is not available.

要么在POST中发送错误的标题,要么更有可能是调用了错误的网址。做一点挖掘,我认为正确的是:

https://api.developer.betfair.com/betting/json-rpc

答案 1 :(得分:0)

Betfair github代码似乎更新 - 我刚刚在他们的帐户上尝试了Python示例代码,它对我有用。您需要以与前一个related question的答案类似的方式设置appKey和sessionToken。我会忽略您最初引用的过时示例代码。