如何发送设置参数字典到zeep客户端

问题描述

很抱歉,是否已经问过这个问题。 我正在尝试将某些参数作为dict发送,但我得到的结果为无提示或找不到提示。 在参数中,我正在发送NodeName(GOAFB)并想要更改其NodeDetails,如参数中所述。 并且该节点名称在地址上可用,请使用get方法(在快照中显示)进行检查。 下面是我尝试过的代码

from zeep import Client
from zeep.transports import Transport
from requests import Session
from requests.auth import HTTPBasicAuth
from zeep.wsse.username import Usernametoken
import json

wsdl = "http://10.2.1.8/ws/17.0/Bhaul.asmx?wsdl"
session = Session()
client = Client(wsdl,transport=Transport(session=session),wsse=Usernametoken('admin','password'))

param = {
  "Ib440ConfigSet": {
    "NodeName": "GOAFB","NodeDetail": {
      "Custom": [
        {
          "Name": "Circle","Value": "KOLKATA"
        },{
          "Name": "SGW","Value": "1010"
        }
      ]
    }
   }
}
dd=client.service.Ib440ConfigGet("GOAFB")

client.service.Ib440ConfigSet(*param)

以下快照包含结果:

enter image description here

支持如何使其工作

解决方法

要发送dict,我们需要分配双* 因此,这应该对您有用:

client.service.Ib440ConfigSet(**param)