python - 如何生成列表与zeep?
问题描述
我正在使用 Python 库zeep与 SOAP 服务通信。文档中所需的参数之一是类型List<String>
,在 WSDL 中我发现了这一点:
<xs:element minOccurs="0" maxOccurs="1" name="IncludedLenders" type="tns:ArrayOfString"/>
我相信AraryOfString
被定义为:
<xs:complexType name="ArrayOfString">
<xs:sequence>
<xs:element minOccurs="0" maxOccurs="unbounded" name="string" nillable="true" type="xs:string"/>
</xs:sequence>
</xs:complexType>
我如何让 zeep 为此生成值?我试过:
"IncludedLenders": [
"BMS",
"BME"
]
但这会产生:
<ns0:IncludedLenders>
<ns0:string>BMS</ns0:string>
</ns0:IncludedLenders>
代替:
<ns0:IncludedLenders>
<ns0:string>BMS</ns0:string>
<ns0:string>BME</ns0:string>
</ns0:IncludedLenders>
任何想法如何生成后者?
解决方案
我想通了。首先我需要提取ArrayOfString
类型:
array_of_string_type = client.get_type("ns1:ArrayOfString")
然后以这种方式创建它:
"IncludedLenders": array_of_string_type(["BMS","BME"])
推荐阅读
- javascript - 在 create-react-app 创建的环境中获取本地 JSON 文件时出现 JSON 解析错误
- vue.js - 如何将 Vue 应用程序部署到子目录中?
- angular - 错误:类型 'Observable<{}[]>' 不可分配给类型 'AngularFireList
'。离子的 - java - JavaFX - 如何检查鼠标是否已进入和或退出窗格?
- sql - 选择具有 datediff 1 和最新时间戳的行
- c# - 在另一个游戏对象的脚本上调用方法
- node.js - Webpack导入所有文件并将其导出为数组
- r - 凸 NMF 实现
- c# - Firebase 检索数据 - Android
- qt - Qt QML 如何找到形状的宽度和高度?