It's cool when you solve your own problems. It was as simple as this: def dictToKeyValue(self, mydict): soap_list = [] for key,value in mydict.items(): inner = {"key":key,"value":value} soap_list.append(inner) return soap_list
It's just a list of dictionaries with the actual words "key" and "value" as keys in the dictionary. I was making it much harder than it needed to be. SOAPpy is smart enough to handle the rest. Thanks SOAPpy! /alex On 10/9/07, Alex Ezell <[EMAIL PROTECTED]> wrote: > Can anyone offer any assistance as to how to convert a basic python > dictionary, list, or even tuple into the SOAP type "ArrayOfKeyValue"? > > I am currently using SOAPpy, but would be willing to change to ZSI or > something else if it made this conversion easier. > > I have tried with the arrayType and structType methods in > SOAPpy.Types, yet they don't seem to do what I need. I suspect there > might not be just a single method call, so, I wrote something like > this: > > def dictToKeyValue(self, mydict): > soap_list = [] > for key,value in mydict.items(): > inner = [] > inner.append(SOAPpy.stringType(key,'key')) > inner.append(SOAPpy.stringType(value,'value')) > soap_list.append(SOAPpy.arrayType(inner)) > print soap_list > return SOAPpy.arrayType(soap_list) > > As you can see, it's pretty nasty and doesn't do what I need either. I > have a client that was written in PHP which I am converting. It uses > this function (which calls the PEAR SOAP library): > > function assocArrayToKeyValue($array) { > $soap_array = array(); > foreach($array as $key=>$value) { > $inner = array(); > $inner[] =& new SOAP_Value('key', 'string', $key); > $inner[] =& new SOAP_Value('value', 'string', $value); > $soap_array[] =& new SOAP_Value("item", > "{{$this->wsdl_urn}}KeyValue", $inner); > } > return $soap_array; > } > > Unfortunately, I don't really have a way to see exactly what > $soap_array is so that I could emulate it in my Python code. > > Any pointers or suggestions are very much appreciated. > > /alex > -- http://mail.python.org/mailman/listinfo/python-list