我已经使用有效的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语句。任何人都可以建议可能出错的地方。
谢谢。
答案 0 :(得分:0)
错误由opener.open()
引发,因为您尝试连接的HTTP服务器返回 414 Request-URI Too Large 响应。
这意味着您的URL(包括查询参数)太长,服务器拒绝处理它。实际上,当您在URL中发送超过2000个字符时,通常会达到太长,但实际上它取决于服务器。
您需要使用较短的网址;也许你试图将太多元素放入查询参数中。您调用的特定API占用的字符数略少于30k字符。对于整个URL(确切地说是28820)。
这完全取决于您试图在哪里调用您的选项。例如,服务器也可能支持发送POST请求,其中查询参数作为请求主体而不是查询字符串发送。