gpt4 book ai didi

Python zeep - 绑定(bind)名称以点 (.) 开头时标记名称无效

转载 作者:行者123 更新时间:2023-11-28 17:16:03 28 4
gpt4 key购买 nike

我正在尝试让 zeep 打开一个 WSDL,该 WSDL 在名称的开头具有带点的绑定(bind),并收到 ValueError: Invalid tag name '.USXMLWSSoapBinding' 错误消息。

WSDL 将绑定(bind)名称定义为:

<wsdl:binding name=".USXMLWSSoapBinding" type="impl:USXMLWS">

我可以让它与其他语言和库一起工作,但 python 和 zeep 似乎不同意我的观点:

python -mzeep <wsdl>

import zeep
client = zeep.Client('https://example.com/service.wsdl')

最佳答案

您可以通过 unittest.mock

修补 Zeep 的崩溃行为
from unittest import mock
from zeep import Client

def my_as_qname(value, nsmap, target_namespace=None):
value = value.strip()

if '/' in value: # This is my fix for slash in value
value = value.replace('/', '-')

# More stuff that i removed in this snippet


with mock.patch('zeep.utils.as_qname', side_effect=my_as_qname):
client = Client(wsdl)

在我的例子中,失败的 WSDL 是法国邮局 « La Poste » 新的 Colissimo 网络服务。 https://ws.colissimo.fr/sls-ws/SlsServiceWS/2.0?wsdl

我想其他尝试将 Zeep 与它一起使用的人也会遇到同样的问题。

关于Python zeep - 绑定(bind)名称以点 (.) 开头时标记名称无效,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/44157873/

28 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com