当作为参数传递但是与kwargs一起工作时,Suds客户端不工作

时间:2017-03-19 14:02:35

标签: python suds

对不起,这可能是一个愚蠢的问题,但我不太熟悉python。

如果我使用this:

将参数传递给客户端方法调用,则在suds客户端上
kwargs = {'username': username, 'password': password, 'type': '', }

response = client.service.Login(**kwargs)

这很好用。但如果我使用:

response = client.service.Login({'username': username, 'password': password, 'type': '', })

这不起作用,有人可以解释这些差异以及它为什么不起作用。

由于

1 个答案:

答案 0 :(得分:2)

如果你仔细观察,你可以看到,在第一种情况下,当你将字典传递给带有**运算符的函数参数(你将键,值对作为命名参数传递)时,你正在解压缩字典。第二种情况是你传递函数一个参数;字典

{'username': username, 'password': password, 'type': '', }

如果你这样做:

response = client.service.Login(**{'username': username, 'password': password, 'type': '', })

它应该有用