Python return self.request(';POST';,url,data=data,**kwargs)TypeError:request()获取了意外的关键字参数';json';
我试图创建一个事件到服务器,这是托管在另一台ubuntu机器 我将下面的代码保存为test.py文件,当我在本地ubuntu机器上执行时,它工作正常,但当我在远程aws ec2机器上执行时,它会抛出错误Python return self.request(';POST';,url,data=data,**kwargs)TypeError:request()获取了意外的关键字参数';json';,python,python-2.7,api,amazon-ec2,Python,Python 2.7,Api,Amazon Ec2,我试图创建一个事件到服务器,这是托管在另一台ubuntu机器 我将下面的代码保存为test.py文件,当我在本地ubuntu机器上执行时,它工作正常,但当我在远程aws ec2机器上执行时,它会抛出错误 from irisclient import Irisclient client = IrisClient( app='oncall', key='magic', api_host='http://192.168.54.101:16649' ) client.incident(plan='On
from irisclient import Irisclient
client = IrisClient(
app='oncall',
key='magic',
api_host='http://192.168.54.101:16649'
)
client.incident(plan='Oncall test', context=
{
"description": "hello",
"requester": "joe"
}
)
错误日志
File "/usr/lib/python2.7/dist-packages/irisclient/__init__.py", line 52, in incident
r = self.post(self.url + 'incidents', json=incident_json)
File "/usr/lib/python2.7/dist-packages/requests/sessions.py", line 377, in post
return self.request('POST', url, data=data, **kwargs)
TypeError: request() got an unexpected keyword argument 'json'
我认为,因为您的上下文数据是dict,请尝试将上下文数据转换为json,如下所示:
import json
from irisclient import Irisclient
client = IrisClient(
app='oncall',
key='magic',
api_host='http://192.168.54.101:16649'
)
data = {
"description": "hello",
"requester": "joe",
}
client.incident(plan='Oncall test', context=json.dumps(data))
这似乎是您的irisclient包中的一个bug。阅读回溯。它说在irisclient/\uuuuu init\uuuuupy.py的第52行,您正在调用self.post,这显然是从请求模块调用某个实例。。。您的iRiscClient代码正在传递一个关键字参数json=。。。通过那个电话 但是请求库不识别这个关键字参数(kwarg)。因此它抛出了TypeError(来自../requests/sessions.py的第377行)
也许您需要通过data=选项传递JSON,如下所述:我刚刚将python升级到3.5版本,它可以在不修改代码的情况下工作