2017-09-11 138 views
0

我无法解决此错误。同样在另一个模块中工作。以下是代码。Python请求错误

def _apiQuery(self): 
    params = { 
       'address': self.address 
       } 
    try: 
     r = requests.get(self.url, params) 
     response = r.json() 
     return response 
    except Exception as e: 
     raise 

错误:

r = requests.get(self.url, params) 
TypeError: get() takes exactly 1 argument (2 given) 

但是,如果我这样做r = requests.get(self.url, params=params) this works.

+1

看起来像是在请求[v2.6.2](http://docs.python-requests.org/en/v2.6.2/api/#requests.get)和[v2.7.0]( http://docs.python-requests.org/en/v2.7.0/api/#requests.get)。你使用什么版本? – glibdud

+0

它在另一个模块中使用完全相同的查询,并在'params = params'这里工作,所以绝对不是版本问题。 – garg10may

+0

这会使'** kwargs'的'params'部分与2.7.0之前版本的API一致。不能说为什么其他建筑在别处工作。他们是否使用不同的python版本或虚拟的envs,你可能有不同的请求安装? – glibdud

回答

0

我在Linux环境下使用sublime-text作为IDE。不同之处在于我从哪里开始我的崇高文本。

如果我刚刚登录后启动它。在运行时请求显示版本2.6 如果我激活我的虚拟环境并启动它,请求显示版本2.13

因此,它使用的库取决于我从哪里启动IDE。

正如@glibdud params was added between requests v2.6.2 and v2.7.0所提到的那样。