URL“GET”无效:在Python中调用freebase api时没有提供架构错误。

时间:2012-05-30 22:42:58

标签: python

import os
import shelve
import urllib
import urlparse
import sys
import shelve
import oauth2 as oauth
import requests

api_key = 'xyz'
url = 'https://www.googleapis.com/freebase/v1/mqlread?query=hello&key=xyz'

resp, content = requests.request(url, "GET")
print resp

我只是在测试freebase api。当我运行这个基本脚本时,我收到此错误:requests.exceptions.MissingSchema:无效的URL'GET':没有提供架构 有什么原因吗?

2 个答案:

答案 0 :(得分:4)

我相信你要找的是:

>>> import requests
>>> url = 'https://www.googleapis.com/freebase/v1/mqlread?query=hello&key=xyz'
>>> requests.get(url)
<Response [400]>
>>>

来自Requests文档

  

requests.request(method,url,** kwargs)

     

它返回Response对象的实例。

因此,您需要以正确的顺序提供参数。

>>> requests.request("GET",url)
<Response [400]>
>>>

答案 1 :(得分:1)

您必须按正确的顺序放置参数:错误消息表明request()认为"GET"是URL。此外,此调用返回单个Response对象,而不是单独的响应和内容对象,因此您无法将其解压缩为两个变量。

resp = requests.request("GET", url)

或者只是:

resp = requests.get(url)

然后:

content = resp.content

您应该查看requests模块here的文档。