Create a string array parameter with zeep?

随声附和 提交于 2019-12-01 19:07:19

Ok so I had trouble with this using Zeep as well (works with suds easily), the problem is Zeep returns arrays as a function (from my testing) so you need to assign the function to an array, and then modify it. From your current code, it looks as if you are passing data directly to the function (which won't store it).

Using your example above, the below should retrieve the Array type and allow you to modify it as a valid data type.

emptyArrayPlaceholder = client.get_type('ns0:ArrayOf_soapenc_string')

Zeep then returns this type as a function, so first off you need to assign this function to a variable, such as:

options = emptyArrayPlaceholder()

If you were then to inspect options you will see it is a dict, with your list inside of it.

print (options)
{'soapenc': []}

You can then add items to the array easily with:

options['soapenc'].append('Foo')

You should then be able to submit your client with

client.service.initExportDevice(filter, options)

As options is now a valid Zeep data type.

易学教程内所有资源均来自网络或用户发布的内容,如有违反法律规定的内容欢迎反馈
该文章没有解决你所遇到的问题?点击提问,说说你的问题,让更多的人一起探讨吧!