以下获取json函数有什么问题

时间:2014-07-18 16:36:10

标签: python json api url get

我已经使用有效的API密钥尝试了这段代码。

def get_json(url):
    opener = urllib2.build_opener()
    opener.addheaders = [('Authorization', 'apikey token=' + API_KEY)]
    return json.loads(opener.open(url).read())

但是有一个错误说"HTTP Error 414: Request-URI Too Large"指向return语句。任何人都可以建议可能出错的地方。 谢谢。

1 个答案:

答案 0 :(得分:0)

错误由opener.open()引发,因为您尝试连接的HTTP服务器返回 414 Request-URI Too Large 响应。

这意味着您的URL(包括查询参数)太长,服务器拒绝处理它。实际上,当您在URL中发送超过2000个字符时,通常会达到太长,但实际上它取决于服务器。

您需要使用较短的网址;也许你试图将太多元素放入查询参数中。您调用的特定API占用的字符数略少于30k字符。对于整个URL(确切地说是28820)。

这完全取决于您试图在哪里调用您的选项。例如,服务器也可能支持发送POST请求,其中查询参数作为请求主体而不是查询字符串发送。