首页
学习
活动
专区
圈层
工具
发布
社区首页 >问答首页 >命名空间错误python zeep

命名空间错误python zeep
EN

Stack Overflow用户
提问于 2018-07-03 09:05:46
回答 1查看 1.6K关注 0票数 1

我正在尝试读取此Soap API http://telemetriaws1.ana.gov.br/ServiceANA.asmx?WSDL。当我试图调用DadosHidrometeorologicosGerais函数时,我得到了这个错误:

代码语言:javascript
复制
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

所有其他功能运行正常。

下面是我的代码:

代码语言:javascript
复制
 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')
EN

回答 1

Stack Overflow用户

发布于 2018-11-09 08:01:58

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

一种可能的解决方案是省略对XML的zeep解析,并返回raw data。使用模块xml.etree.ElementTree来解析它。

代码语言:javascript
复制
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)
票数 0
EN
页面原文内容由Stack Overflow提供。腾讯云小微IT领域专用引擎提供翻译支持
原文链接:

https://stackoverflow.com/questions/51145378

复制
相关文章

相似问题

领券
问题归档专栏文章快讯文章归档关键词归档开发者手册归档开发者手册 Section 归档