使用Python3从suds转换为zeep

时间:2018-11-21 14:39:48

标签: python suds zeep

我有以下suds代码运行得很好:

from suds.client import Client
def bronto_data(self, page_num):
    self.bApi = Client(self.BRONTO_WSDL)
    session_id = self.bApi.service.login(self.TOKEN)
    session_header = self.bApi.factory.create("sessionHeader")
    filter_type = self.bApi.factory.create("filterType")
    self.contact_filter = self.bApi.factory.create("contactFilter")
    session_header.sessionId = session_id
    self.bApi.set_options(soapheaders=session_header)
    self.contact_filter.listId.append(contacts_list_id)
    self.contact_filter.type = filter_type.AND
    return self.bApi.service.readContacts(self.contact_filter, False, [], page_num)

由于不推荐使用suds,因此我想转换为zeep。 我写了以下代码:

from zeep import Client, helpers
def bornto_data(self, page_num,):
    self.bApi = Client(self.BRONTO_WSDL)
    session_id = self.bApi.service.login(self.TOKEN)
    session_header = self.bApi.type_factory("sessionHeader")
    filter_type = self.bApi.type_factory("filterType")
    self.contact_filter = self.bApi.type_factory("contactFilter")
    session_header.sessionId = session_id
    self.bApi.set_options(soapheaders=session_header)
    self.contact_filter.listId.append(contacts_list_id)
    self.contact_filter.type = filter_type.AND
    return self.bApi.service.readContacts(self.contact_filter, False, [], page_num)

但是它给出了:

ValueError: No such prefix 'sessionHeader'

出什么问题了?

0 个答案:

没有答案