我正在使用zeep python package以便通过SOAP调用函数,该函数接受' ArrayofInt'类型。
通过正常的'整数数组不起作用...解决方法是使用for循环遍历数组的元素并逐个发送元素,但这不是我写过的最干净的代码:)
有什么建议吗?
答案 0 :(得分:3)
此answer将对您进行分类。
使用Zeep的client.get_type函数创建一个空的Zeep ArrayOfInt对象,然后通过它循环数组。
client = Client(soap_url)
test_list = [1,2,3,4]
emptyArrayPlaceholder = client.get_type('ns0:ArrayOfInt')
options = emptyArrayPlaceholder()
for el in test_list:
options['int'].append(el)
答案 1 :(得分:1)
如果您在 SOAP 服务中的方法接受一个整数数组作为参数,那么您可以尝试这种方式:
clientInt = Client(wsdl)
list_int=[1,2,3]
dict_int = {"ArrayOfInteger":{"integer":list_int}}
clientInt.service.getMultipleInt(**dict_int)
当你传入**dict_int 作为参数时,python3 会解压字典并将字典中的关键字作为函数参数传入。
答案 2 :(得分:0)
如果您无法从wsdl中检索对象,请尝试以下操作:
client = Client(soap_url)
test_list = [1,2,3,4]
client.service.ServiceName({"foo": {"int": test_list}})