Nieuws:

Welkom, Gast. Alsjeblieft inloggen of registreren.
Heb je de activerings-mail niet ontvangen?

Auteur Topic: Python Stingarray?  (gelezen 879 keer)

Offline MKe

  • Lid
Python Stingarray?
« Gepost op: 2014/06/25, 13:06:08 »
Wat is in hemelsnaam een stringArray?
Nou ben ik al lang bezig met python, maar ik weet absoluut niet wat een stringArray is. Ik kwam dit tegen bij het gebruik van suds, een library om een soap client te maken.  De server maakt een list en zend het terug. In mijn results kreeg ik zo ineens een stringArray:

De serverside was trouwens gemaakt van dit voorbeeld: http://soaplib.github.io/soaplib/2_0/pages/helloworld.html (gebruikt soaplib 2.0_beta)
import soaplib
from soaplib.core.service import soap,rpc, DefinitionBase
from soaplib.core.model.primitive import String, Integer
from soaplib.core.server import wsgi
from soaplib.core.model.clazz import Array


class HelloWorldService(DefinitionBase):
    @soap(String,Integer,_returns=Array(String))
    def say_hello(self,name,times):
        results = []
        for i in range(0,times):
            results.append('Hello, %s'%name)
        return results

if __name__=='__main__':
    try:
        from wsgiref.simple_server import make_server
        soap_application = soaplib.core.Application([HelloWorldService], 'tns')
        wsgi_application = wsgi.Application(soap_application)
        server = make_server('localhost', 7789, wsgi_application)
        server.serve_forever()
    except ImportError:
        print "Error: example server code requires Python >= 2.5"

En de ontvanger:
>>> from suds.client import Client
>>> hello_client = Client('http://localhost:7789/?wsdl')
>>> result = hello_client.service.say_hello("Dave", 5)
>>> print result

(stringArray){
   string[] =
      "Hello, Dave",
      "Hello, Dave",
      "Hello, Dave",
      "Hello, Dave",
      "Hello, Dave",
 }

Re: Python Stingarray?
« Reactie #1 Gepost op: 2014/06/25, 20:30:37 »
Blijkbaar een custom instance van Suds, een array van strings zoals de naam al aangeeft.

De StringArray object heeft blijkbaar maar 1 custom attribuut - string. En in dit geval is dat zelfs een list...

print type(result.string)
for item in result.string:
    print item

Offline MKe

  • Lid
Re: Python Stingarray?
« Reactie #2 Gepost op: 2014/06/28, 14:12:59 »
Bedankt, het lijk idd een eigen object te zijn. Was er ff van in de war.