繁体   English   中英

命名空间错误python zeep

[英]Namespace error python zeep

我正在尝试阅读此Soap API http://telemetriaws1.ana.gov.br/ServiceANA.asmx?WSDL 当我尝试调用DadosHidrometeorologicosGerais函数时,出现此错误:

File "/home/1234/.local/share/virtualenvs/data_getter-1W9NAele/lib/python3.6/site-packages/zeep/xsd/schema.py", line 570, in _get_component
return items[qname]
KeyError: <lxml.etree.QName object at 0x7f2e93fa6d00>
During handling of the above exception, another exception occurred:
Traceback (most recent call last):
zeep.exceptions.LookupError: No element 'DocumentElement' in namespace None. Available elements are: NewDataSet

所有其他功能正常。

这是我的代码:

 from zeep import Client

 client = Client('http://telemetriaws1.ana.gov.br/ServiceANA.asmx?WSDL')
 client.service.DadosHidrometeorologicosGerais(codEstacao='86450500', dataInicio='05/05/2018', dataFim='05/05/2018')

我不确定,但是xml文件似乎是从某些数据集生成的。 “ id”属性与元素标识不匹配。

一种可能的解决方案是忽略XML的zeep解析并返回原始数据 使用模块xml.etree.ElementTree对其进行解析。

from zeep import Client, Settings
import xml.etree.ElementTree as ET

settings = Settings(force_https=False, raw_response=True)
WSDL = 'http://telemetriaws1.ana.gov.br/ServiceANA.asmx?WSDL'

client = Client(WSDL, settings=settings)

response = client.service.DadosHidrometeorologicosGerais(codEstacao='86450500',
                                                     dataInicio='05/05/2018',
                                                     dataFim='05/05/2018')

root = ET.fromstring(response.content)

暂无
暂无

声明:本站的技术帖子网页,遵循CC BY-SA 4.0协议,如果您需要转载,请注明本站网址或者原文地址。任何问题请咨询:yoyou2525@163.com.

 
粤ICP备18138465号  © 2020-2024 STACKOOM.COM