SOAP 调用中的 ArrayOfArrayOfString 与 Python 中的 zeep

问题描述

我正在尝试调用soap网络服务。

https://api.accounting.twinfield.com//webservices/finder.asmx?wsdl

它以 ArrayOfarrayofstring 作为参数。当我对其执行 get_type 时,

emptyArrayPlaceholder = proces2.get_type("ns0:ArrayOfarrayofstring")
options1 = emptyArrayPlaceholder()
print(options1)

给予

{
    'arrayofstring': []
}

我尝试了几种组合,但似乎找不到合适的组合。

    EmptyString = proces2.get_type('ns0:arrayofstring')  
    emptyArrayPlaceholder = proces2.get_type("ns0:ArrayOfarrayofstring")
    options1 = EmptyString()
    print(options1)
    options2= EmptyString()
    print(options1)

    options1['string'].append('office')
    options1['string'].append('072')
    options2['string'].append('dimtype')
    options2['string'].append('DEB')

 
    options4 = emptyArrayPlaceholder()
    options5 = emptyArrayPlaceholder()
    options4['arrayofstring'].append(options1)
    options5['arrayofstring'].append(options2)
    options6 = emptyArrayPlaceholder()
    options6['arrayofstring'].append(options4)
    options6['arrayofstring'].append(options5)
    options7 =[options4,options5]
    print(options6)

    responz = proces2.service.Search(type = "DIM",field = 0,firstRow = 1,maxRows = 0,options = options7,_soapheaders={'Header': header_value})

我已经尝试过使用这些选项中的任何一个。正确的 xml 调用如下所示:

<Search xmlns="http://www.twinfield.com/">
            <type>DIM</type>
            <pattern>*</pattern>
            <field>0</field>
            <firstRow>1</firstRow>
            <maxRows>0</maxRows>
            <options>
                <arrayofstring>
                    <string>office</string>
                    <string>072</string>
                </arrayofstring>
                <arrayofstring>
                    <string>dimtype</string>
                    <string>PNL</string>
                </arrayofstring>
            </options>
        </Search>''

有什么想法吗?

解决方法

暂无找到可以解决该程序问题的有效方法,小编努力寻找整理中!

如果你已经找到好的解决方法,欢迎将解决方案带上本链接一起发送给小编。

小编邮箱:dio#foxmail.com (将#修改为@)