You need to enable JavaScript to run this app.
优惠活动
大模型
产品
解决方案
定价
更多

使用Zeep创建含xs:choice的ArrayOfVEHICLE类型元素报错,求助解决方法

如何使用Zeep创建包含xsd:choice的ArrayOfVEHICLE类型元素?

你的问题出在Zeep对xs:choice搭配maxOccurs="unbounded"的结构解析方式上——这个类型本质是一个可重复的选择项列表,而非单个键值对。之前的两种写法都没符合Zeep期望的格式,正确的做法是用列表来传递每个选择项:

正确代码示例

首先获取目标类型:

vehicle_array_type = client.get_type("ns0:ArrayOfVEHICLE")

如果要创建包含单个VEHICLEV2的数组:

# 构造VEHICLEV2的实际字段数据
vehicle_v2_data = {
    "vehicle_id": "V2-001",
    "model": "Electric SUV",
    "production_year": 2024
    # 替换为你的实际字段
}

# 用列表包裹选择项,每个元素是对应选项的字典
vehicle_array = vehicle_array_type([
    {"VEHICLEV2": vehicle_v2_data}
])

如果需要同时包含VEHICLE和VEHICLEV2类型的元素:

vehicle_array = vehicle_array_type([
    {"VEHICLE": {"id": "V-001", "model": "Sedan", "year": 2020}},
    {"VEHICLEV2": {"id": "V2-002", "model": "Hybrid Truck", "year": 2023, "battery_capacity": 50}}
])

为什么之前的写法会报错?

  • 第一种直接传VEHICLEV2={...}:Zeep期望的是一个列表(对应maxOccurs="unbounded"的可重复选择规则),而非单个关键字参数,所以触发了参数不匹配的错误。
  • 第二种用_value_1={"VEHICLEV2": {...}}:_value_1需要接收的是列表而非单个字典,因为choice允许重复出现,Zeep无法识别单个字典作为合法的序列内容。

内容的提问来源于stack exchange,提问作者Dmitry

相关产品推荐
方舟 Agent Plan

超全模态模型 × Harness 升级,最新支持 Deepseek-V4.1-Flash、GLM-5.3 系列、Doubao-Seedream-5.0-pro、Kimi-K3 (部分), 限时 9.9 元起

最近更新时间:2026.04.28 10:08:12