Python “肥皂水”是什么意思&书信电报;故障代码/>;未映射到消息部分;?

Python “肥皂水”是什么意思&书信电报;故障代码/>;未映射到消息部分;?,python,soap,suds,Python,Soap,Suds,我第一次使用suds,并尝试与外部公司托管的服务器通信。当我在服务器上调用一个方法时,我得到了这个XML <?xml version="1.0" encoding="UTF-8"?> <soap:Envelope xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance" xmlns:soapenc="http://schemas.xmlsoap.org/soap/encoding/" xmlns:x

我第一次使用suds,并尝试与外部公司托管的服务器通信。当我在服务器上调用一个方法时,我得到了这个XML

<?xml version="1.0" encoding="UTF-8"?>
<soap:Envelope 
    xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance" 
    xmlns:soapenc="http://schemas.xmlsoap.org/soap/encoding/" 
    xmlns:xsd="http://www.w3.org/2001/XMLSchema" 
    soap:encodingStyle="http://schemas.xmlsoap.org/soap/encoding/" 
    xmlns:soap="http://schemas.xmlsoap.org/soap/envelope/">
  <soap:Body>
    <soap:Fault>
      <faultcode>soap:Server</faultcode>

      <faultstring>Can't use string ("") as an ARRAY ref while "strict refs" in use at /vindicia/site_perl/Vindicia/Soap/DocLitUtils.pm line 130.
</faultstring>
    </soap:Fault>
  </soap:Body>
</soap:Envelope>

soap:服务器
在/vindicia/site\u perl/vindicia/Soap/DocLitUtils.pm第130行使用“strict refs”时,不能将字符串(“”)用作数组引用。
引发的异常如下:

File "C:\Python26\lib\site-packages\suds-0.4-py2.6.egg\suds\client.py", line 538, in __call__ return client.invoke(args, kwargs) File "C:\Python26\lib\site-packages\suds-0.4-py2.6.egg\suds\client.py", line 602, in invoke result = self.send(msg) File "C:\Python26\lib\site-packages\suds-0.4-py2.6.egg\suds\client.py", line 634, in send result = self.succeeded(binding, reply.message) File "C:\Python26\lib\site-packages\suds-0.4-py2.6.egg\suds\client.py", line 669, in succeeded r, p = binding.get_reply(self.method, reply) File "C:\Python26\lib\site-packages\suds-0.4-py2.6.egg\suds\bindings\binding.py", line 157, in get_reply result = self.replycomposite(rtypes, nodes) File "C:\Python26\lib\site-packages\suds-0.4-py2.6.egg\suds\bindings\binding.py", line 227, in replycomposite raise Exception(' not mapped to message part' % tag) Exception: 'faultcode' not mapped to message part 文件“C:\Python26\lib\site packages\suds-0.4-py2.6.egg\suds\client.py”,第538行,在调用中__ 返回client.invoke(args、kwargs) 调用中的文件“C:\Python26\lib\site packages\suds-0.4-py2.6.egg\suds\client.py”,第602行 结果=self.send(msg) 文件“C:\Python26\lib\site packages\suds-0.4-py2.6.egg\suds\client.py”,第634行,在send中 结果=self.successed(绑定、回复、消息) 第669行的文件“C:\Python26\lib\site packages\suds-0.4-py2.6.egg\suds\client.py”成功 r、 p=binding.get\u reply(self.method,reply) 文件“C:\Python26\lib\site packages\suds-0.4-py2.6.egg\suds\bindings\binding.py”,第157行,在get\U回复中 结果=self.replycomposite(rtypes,nodes) replycomposite中的文件“C:\Python26\lib\site packages\suds-0.4-py2.6.egg\suds\bindings\binding.py”,第227行 引发异常('未映射到消息部分''%1!''标记) 异常:“faultcode”未映射到消息部分
知道为什么suds会抛出异常吗?关于如何修复它有什么想法吗?

我遇到了一个类似的问题,调用成功,在解析客户端响应时,suds崩溃了。我使用的变通方法是使用,然后使用解析响应

例如:

client = Client(url)
client.set_options(retxml=True)
soapresp_raw_xml = client.service.submit_func(data)
soup = BeautifulStoneSoup(soapresp_raw_xml)
value_i_want = soup.find('ns:NewSRId')
这里已经回答了:

此异常实际上意味着来自SOAP服务的应答包含标记
,而该标记在服务的WSDL方案中不存在


请记住,suds库缓存WSDL方案,这就是为什么如果WSDL方案最近发生了更改,那么问题可能会发生的原因。然后,答案与新方案匹配,但由suds客户端使用旧方案进行验证。在这种情况下,
rm/tmp/suds/*
将帮助您

我也有同样的问题。找到什么了吗?不确定原因是什么,但似乎已经在0.4测试版中修复。哦,伙计,这是一个严肃的1992 HTML网页(美丽的汤)。如果要解析XML,请记住使用有效的解析器作为第二个参数:
Soup=BeautifulSoup(soapresp_raw_XML,“lxml”)
。考虑到构造函数已经更改:不再有用于解析XML的BeautifulsToneSoop类。要解析XML,请将“XML”作为第二个参数传递给BeautifulSoup构造函数。出于同样的原因,BeautifulSoup构造函数不再识别isHTML参数。()