Python Zeep - 列表对象没有属性 _xsd_name
Python Zeep - List Object has no Attribute _xsd_name
我正在尝试使用 Zeep 库调用 SOAP 端点。
端点具有以下签名:
ExecuteStaticSQLQuery(queryType: ns0:StaticQueries, xmlParameters: {_value_1: ANY}, iRowsAffected: xsd:int) -> ExecuteStaticSQLQueryResult: xsd:int, iRowsAffected: xsd:int
我构建了一个包含以下逻辑的函数:
INSERT_AUTO_FORWARD_IMPORT = 'INSERT_AUTO_FORWARD_IMPORT_1'
query_parameter = self.client.get_type('ns0:QueryParameter')
db_type = self.client.get_type('ns0:DbType')
table_parameter = query_parameter(ParameterType=db_type('String'),
ParameterName='@Auto_Forward_Table_Name',
ParameterValue=auto_forward_table)
any_object = AnyObject(query_parameter, table_parameter)
xml_parameters = {
'_value_1': any_object
}
soap_envelope = self.service.ExecuteStaticSQLQuery(queryType=INSERT_AUTO_FORWARD_IMPORT,
xmlParameters=xml_parameters,
iRowsAffected=rows_affected)
当我调用该函数时出现以下错误:
'list' object has no attribute '_xsd_name'
我怀疑问题出在我构建的 any_object
上,因为我可以在没有 xmlParameters
参数的情况下向端点发送请求,并且我会收到回复。
基于 Zeep Any Objects Docs,我认为我正确地构建了 AnyObject
并实现了对 SOAP 端点的调用。
我不太确定从这里到哪里去。
我不确定您是否正确创建了 AnyObject
。
根据 Zeep docs you link to,您应该调用 get_element
,而不是 get_type
,以构建 AnyObject
。
换句话说,尝试替换行
query_parameter = self.client.get_type('ns0:QueryParameter')
和
query_parameter = self.client.get_element('ns0:QueryParameter')
我正在尝试使用 Zeep 库调用 SOAP 端点。
端点具有以下签名:
ExecuteStaticSQLQuery(queryType: ns0:StaticQueries, xmlParameters: {_value_1: ANY}, iRowsAffected: xsd:int) -> ExecuteStaticSQLQueryResult: xsd:int, iRowsAffected: xsd:int
我构建了一个包含以下逻辑的函数:
INSERT_AUTO_FORWARD_IMPORT = 'INSERT_AUTO_FORWARD_IMPORT_1'
query_parameter = self.client.get_type('ns0:QueryParameter')
db_type = self.client.get_type('ns0:DbType')
table_parameter = query_parameter(ParameterType=db_type('String'),
ParameterName='@Auto_Forward_Table_Name',
ParameterValue=auto_forward_table)
any_object = AnyObject(query_parameter, table_parameter)
xml_parameters = {
'_value_1': any_object
}
soap_envelope = self.service.ExecuteStaticSQLQuery(queryType=INSERT_AUTO_FORWARD_IMPORT,
xmlParameters=xml_parameters,
iRowsAffected=rows_affected)
当我调用该函数时出现以下错误:
'list' object has no attribute '_xsd_name'
我怀疑问题出在我构建的 any_object
上,因为我可以在没有 xmlParameters
参数的情况下向端点发送请求,并且我会收到回复。
基于 Zeep Any Objects Docs,我认为我正确地构建了 AnyObject
并实现了对 SOAP 端点的调用。
我不太确定从这里到哪里去。
我不确定您是否正确创建了 AnyObject
。
根据 Zeep docs you link to,您应该调用 get_element
,而不是 get_type
,以构建 AnyObject
。
换句话说,尝试替换行
query_parameter = self.client.get_type('ns0:QueryParameter')
和
query_parameter = self.client.get_element('ns0:QueryParameter')