我正在尝试制作一个使用请求库来获取来自nytimes api的数据的Twitter机器人 代码中有一行
resp = requests.get(API_ENDPOINT, my_params)
现在,当我在本地运行时,这非常有效。所以我把它上传到了pythonanywhere。我试图运行它的那一刻我得到了这个错误:
resp = requests.get(API_ENDPOINT,my_params)
TypeError:get()只取1个参数(给定2个)
发生了什么事?我最近开始使用请求以及pythonanywhere。所以我完全不知道从哪里开始调试。
答案 0 :(得分:2)
您在PythonAnywhere和本地安装了不同的requests
版本。
从我看到的,在PythonAnywhere上安装的requests
版本是2.4.0
。那时,您必须specify params
keyword argument explicitly:
requests.get(url, **kwargs)
你必须写:
resp = requests.get(API_ENDPOINT, params=my_params)
在最新版本(目前为2.10.0
)中,您可以params
指定as a positional argument:
requests.get(url, params=None, **kwargs)
resp = requests.get(API_ENDPOINT, my_params)
答案 1 :(得分:0)
你可以这样做:
API_ENDPOINT = 'http://your_endpoint_url.com"
my_params = {'key1': 'value1', 'key2': 'value2'}
r = requests.get(API_ENDPOINT, params=my_params) # notice params is named named