Hi I am trying to communicate with a vendor's WebService, using PyWin32. I am successful using most of the methods, but I don't know how to interpret those returning a dictionary like object.
Obfuscating the vendor name with XXX everywhere, to avoid checking on whether it is acceptable to communicate about this, the code looks like sc = win32com.client.Dispatch("MSSOAP.SoapClient") sc.mssoapinit("http://localhost:1024/wsdl/IXXXWebService") sc.connect() ret = sc.ReadMeasureDataParam(paramName) Under C# or VB, ret would be a dictionary like object with 6 different keys, such as LongName and ShortName, accessed as ret.LongName, etc. Using that under PyWin32 gives an attribute error, but I can index with the [0] to [5]. Unfortunately, doing that still returns an object I don't know how to interpret. There are several other functions that have the same issue, but I think the basic problem is identical. The relevant XML code follows. I manually chopped the code apart, eliminating what I though was unnecessary. Thanks, XML Code follows: <?xml version="1.0" encoding="UTF-8"?> <definitions xmlns="http://schemas.xmlsoap.org/wsdl/" xmlns:xs="http://www.w3.org/2001/XMLSchema" name="IXXXWebServiceservice" targetNamespace="http://tempuri.org/" xmlns:tns="http://tempuri.org/" xmlns:soap="http://schemas.xmlsoap.org/wsdl/soap/" xmlns:soapenc="http://schemas.xmlsoap.org/soap/encoding/" xmlns:mime="http://schemas.xmlsoap.org/wsdl/mime/" xmlns:ns1="urn:XXXWebServiceIntf"> <types> <xs:schema targetNamespace="urn:XXXWebServiceIntf" xmlns="urn:XXXWebServiceIntf"> <xs:complexType name="TXXXMeasureParam"> <xs:sequence> <xs:element name="ShortName" type="xs:string"/> <xs:element name="LongName" type="xs:string"/> <xs:element name="Factor" type="xs:double"/> <xs:element name="Offset" type="xs:double"/> <xs:element name="ValueUnit" type="xs:string"/> <xs:element name="Precision" type="xs:int"/> </xs:sequence> </xs:complexType> </xs:schema> </types> <message name="ReadMeasureDataParam11Request"> <part name="signal" type="xs:string"/> </message> <message name="ReadMeasureDataParam11Response"> <part name="return" type="ns1:TXXXMeasureParam"/> </message> <portType name="IXXXWebService"> <operation name="ReadMeasureDataParam"> <input message="tns:ReadMeasureDataParam11Request"/> <output message="tns:ReadMeasureDataParam11Response"/> </operation> </portType> <binding name="IXXXWebServicebinding" type="tns:IXXXWebService"> <soap:binding style="rpc" transport="http://schemas.xmlsoap.org/soap/http"/> <operation name="ReadMeasureDataParam"> <soap:operation soapAction="urn:XXXWebServiceIntf-IXXXWebService#ReadMeasureDataParam" style="rpc"/> <input message="tns:ReadMeasureDataParam11Request"> <soap:body use="encoded" encodingStyle="http://schemas.xmlsoap.org/soap/encoding/" namespace="urn:XXXWebServiceIntf-IXXXWebService"/> </input> <output message="tns:ReadMeasureDataParam11Response"> <soap:body use="encoded" encodingStyle="http://schemas.xmlsoap.org/soap/encoding/" namespace="urn:XXXWebServiceIntf-IXXXWebService"/> </output> </operation> </binding> <service name="IXXXWebServiceservice"> <port name="IXXXWebServicePort" binding="tns:IXXXWebServicebinding"> <soap:address location="http://172.31.234.44:1024/soap/IXXXWebService"/> </port> </service> </definitions>
_______________________________________________ python-win32 mailing list python-win32@python.org http://mail.python.org/mailman/listinfo/python-win32