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

Suds client not working when passing as parameters but works with kwargs

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

在 suds 客户端上,如果我使用以下方法将参数传递给客户端方法调用:

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

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

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

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

这行不通,有人可以解释一下区别以及为什么它行不通吗。

谢谢

如果仔细观察,您会发现在第一种情况下,当使用 ** 运算符将字典传递给函数参数时,您正在解压字典(您将键值对作为命名参数传递)而在第二种情况下,您向函数传递了一个参数;字典

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

如果你这样做:

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

它应该有效