Warning: file_get_contents(/data/phpspider/zhask/data//catemap/2/python/304.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
Python 如何通过SOAP库zeep中的错误?_Python_Xml_Soap_Lxml_Zeep - Fatal编程技术网

Python 如何通过SOAP库zeep中的错误?

Python 如何通过SOAP库zeep中的错误?,python,xml,soap,lxml,zeep,Python,Xml,Soap,Lxml,Zeep,我犯了一个错误,找不到解决的办法——它完全停止了我的进步。如何通过Python使用SOAP访问此API import zeep endpoint_soap = 'http://api4.ibmmarketingcloud.com/SoapApi?wsdl' client = zeep.Client(endpoint_soap) 我得到的错误是ValueError: .... File "src/lxml/etree.pyx", line 1826, in lxml.etree.QName._

我犯了一个错误,找不到解决的办法——它完全停止了我的进步。如何通过Python使用SOAP访问此API

import zeep

endpoint_soap = 'http://api4.ibmmarketingcloud.com/SoapApi?wsdl'
client = zeep.Client(endpoint_soap)
我得到的错误是ValueError:

....
File "src/lxml/etree.pyx", line 1826, in lxml.etree.QName.__init__
File "src/lxml/apihelpers.pxi", line 1626, in 
lxml.etree._tagValidOrRaise
ValueError: Invalid tag name 'AGGREGATE_SUPPRESSIONS '

Python3.6

问题在于标记名“AGGREGATE\u SUPPRESSIONS”中存在空格,因此必须修改库本身中的utils.py文件。这是一个简单的修复方案,解决了GitHub问题:

在as_qname函数的最开始处添加以下代码行

在zeep>utils.py中:

def as_qname(value, nsmap, target_namespace=None):
    ## Workaround: if any leading and/or ending whitespaces are present, remove them
    ## strip whitespaces
    value = value.strip()
    ## End of workaround

这里有人有同样的问题-这可能不是一个zeep,而是一个lxml问题谢谢你@jan seins在底部解决了这个问题。必须按照问题中的讨论修改zeep utils.py