[英]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.