Python 尝试使用zeep连接到Netsuite时出错

Python 尝试使用zeep连接到Netsuite时出错,python,netsuite,zeep,Python,Netsuite,Zeep,我正在编写一个Python应用程序,它将连接到Netsuite(WSDL),然后将数据插入表中。我正在尝试使用zeep连接到我们的Netsuite服务器,但出现以下错误: python3.6 /xxx/python-netsuite/netsuite/client.py Traceback (most recent call last): File "/xxx/.virtualenvs/for-netsuite/lib/python3.6/site-packages/zeep/xsd/schem

我正在编写一个Python应用程序,它将连接到Netsuite(WSDL),然后将数据插入表中。我正在尝试使用zeep连接到我们的Netsuite服务器,但出现以下错误:

python3.6 /xxx/python-netsuite/netsuite/client.py
Traceback (most recent call last):
File "/xxx/.virtualenvs/for-netsuite/lib/python3.6/site-packages/zeep/xsd/schema.py", line 565, in _get_component
return items[qname]
KeyError: <lxml.etree.QName object at 0x10e9bd850>

During handling of the above exception, another exception occurred:

Traceback (most recent call last):
File "/xxx/python-netsuite/netsuite/client.py", line 2, in <module>
from netsuite.service import (client,
File "/xxx/python-netsuite/netsuite/service.py", line 13, in <module>
Passport = model('ns1:Passport')
File "/xxx/.virtualenvs/for-netsuite/lib/python3.6/site-packages/zeep/client.py", line 263, in get_type
return self.wsdl.types.get_type(name)
File "/xxx/.virtualenvs/for-netsuite/lib/python3.6/site-packages/zeep/xsd/schema.py", line 140, in get_type
return self._get_instance(qname, 'get_type', 'type')
File "/xxx/.virtualenvs/for-netsuite/lib/python3.6/site-packages/zeep/xsd/schema.py", line 243, in _get_instance
raise last_exception
File "/xxx/.virtualenvs/for-netsuite/lib/python3.6/site-packages/zeep/xsd/schema.py", line 239, in _get_instance
return method(qname)
File "/xxx/.virtualenvs/for-netsuite/lib/python3.6/site-packages/zeep/xsd/schema.py", line 523, in get_type
return self._get_component(qname, self._types, 'type')
File "/xxx/.virtualenvs/for-netsuite/lib/python3.6/site-packages/zeep/xsd/schema.py", line 580, in _get_component
location=self._location)
zeep.exceptions.LookupError: No type 'Passport' in namespace 
urn:types.core_2017_1.platform.webservices.netsuite.com. Available types are: 

{urn:types.core_2017_1.platform.webservices.netsuite.com}RecordType,
{urn:types.core_2017_1.platform.webservices.netsuite.com}SearchRecordType, 
{urn:types.core_2017_1.platform.webservices.netsuite.com}GetAllRecordType,
{urn:types.core_2017_1.platform.webservices.netsuite.com}GetCustomizationType, 
{urn:types.core_2017_1.platform.webservices.netsuite.com}InitializeType,
{urn:types.core_2017_1.platform.webservices.netsuite.com}InitializeRefType,
{urn:types.core_2017_1.platform.webservices.netsuite.com}InitializeAuxRefType,
{urn:types.core_2017_1.platform.webservices.netsuite.com}DeletedRecordType,
{urn:types.core_2017_1.platform.webservices.netsuite.com}AsyncStatusType,
{urn:types.core_2017_1.platform.webservices.netsuite.com}SearchStringFieldOperator,
{urn:types.core_2017_1.platform.webservices.netsuite.com}SearchLongFieldOperator,
{urn:types.core_2017_1.platform.webservices.netsuite.com}SearchTextNumberFieldOperator,
{urn:types.core_2017_1.platform.webservices.netsuite.com}SearchDoubleFieldOperator,
{urn:types.core_2017_1.platform.webservices.netsuite.com}SearchDateFieldOperator,
{urn:types.core_2017_1.platform.webservices.netsuite.com}SearchEnumMultiSelectFieldOperator,
{urn:types.core_2017_1.platform.webservices.netsuite.com}SearchMultiSelectFieldOperator,
{urn:types.core_2017_1.platform.webservices.netsuite.com}SearchDate,
{urn:types.core_2017_1.platform.webservices.netsuite.com}DurationUnit,
{urn:types.core_2017_1.platform.webservices.netsuite.com}CalendarEventAttendeeResponse,
{urn:types.core_2017_1.platform.webservices.netsuite.com}GetSelectValueFilterOperator,
{urn:types.core_2017_1.platform.webservices.netsuite.com}SignatureAlgorithm

Process finished with exit code 1
WSDL\u URL如下所示:。这是我们的Netsuite版本


谁能告诉我我做错了什么吗?

我认为Passport的正确名称空间是:

urn:core_2017_1.platform.webservices.netsuite.com
不是错误消息中的错误:

urn:types.core_2017_1.platform.webservices.netsuite.com

我不熟悉zeep和netsuite,但我注意到,到目前为止,只要知道参数或头的类型,我就可以传递一个带有字符串键和字符串或嵌套dict值的普通dict,zeep将把它转换为正确的类型化xml,而不必给出名称空间或实例化并链接xsd对象。可能有助于简化您的代码。

刚刚找到您的答案。猜猜你会帮我看你在哪个版本?我注意到,在zeep版本
0.22.1
中,
Passport
与您的代码一样位于
ns1
中。但在较新版本的
2.5.0
Passport
中,存在于
ns0
中。
urn:types.core_2017_1.platform.webservices.netsuite.com