请求:模块在本地工作但在 pythonanywhere 上失败
Requests: Module works locally but failed on pythonanywhere
我正在尝试制作一个使用请求库从纽约时报获取数据的 Twitter 机器人 api。
代码中有一行
resp = requests.get(API_ENDPOINT, my_params)
现在,当我在本地 运行 时,它工作得很好。所以我把它上传到pythonanywhere。当我尝试 运行 时,我收到了这个错误:
resp = requests.get(API_ENDPOINT, my_params)
TypeError: get() takes exactly 1 argument (2 given)
这是怎么回事?我最近开始使用 requests 和 pythonanywhere。所以我真的不知道从哪里开始调试。
您在 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)
你可以这样做:
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
我正在尝试制作一个使用请求库从纽约时报获取数据的 Twitter 机器人 api。
代码中有一行
resp = requests.get(API_ENDPOINT, my_params)
现在,当我在本地 运行 时,它工作得很好。所以我把它上传到pythonanywhere。当我尝试 运行 时,我收到了这个错误:
resp = requests.get(API_ENDPOINT, my_params)
TypeError: get() takes exactly 1 argument (2 given)
这是怎么回事?我最近开始使用 requests 和 pythonanywhere。所以我真的不知道从哪里开始调试。
您在 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)
你可以这样做:
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