Python Ladon can';t返回列表

Python Ladon can';t返回列表,python,ladon,Python,Ladon,我正在设置Ladon SOAP服务器,但根本无法让它返回列表 以下是我所拥有的: class V1(object): """ This service returns events between two times for a given trackable. """ @ladonize(rtype=[ PORTABLE_STRING ]) def getGroupNames(self): """ Returns a li

我正在设置Ladon SOAP服务器,但根本无法让它返回列表

以下是我所拥有的:

class V1(object):
    """
    This service returns events between two times for a given trackable.
    """
    @ladonize(rtype=[ PORTABLE_STRING ])
    def getGroupNames(self):
        """
        Returns a list of group names.
        @rtype: List of group names.
        """
        cnn = db.get_connection()
        sql = "blah blah sql"
        params = {}
        groups = db.execute_fetchall(cnn, sql, params)
        ret = []
        for g in groups:
            ret += [g["group_description"]]
        return ret
我得到的错误是:

WebFault: Server raised fault: 'Return-type mismatch in V1::getGroupNames: Expected [<type 'unicode'>] recieved <type 'list'>'
WebFault:Server引发的错误:“V1::GetGroupName中的返回类型不匹配:应为[]Received”
它需要一个unicode列表,我返回一个unicode列表,但它坚持这些不是同一件事


我遗漏了什么?

在此之前我没有使用过(或听说过)Ladon,但它看起来很幼稚。它似乎只是比较
类型(a)==类型(b)
,这意味着,不,您将无法直接描述复杂类型。我想你想要的是叫
LadonType
;请参阅。

是的,如果我使用LadonType,我可以让它工作-如果我返回单个项目。但一旦我创建了一个复杂的类型,它就会在dictproxy上崩溃(我甚至不知道它会如何崩溃,但哦,好吧)。使用Ladon是因为它似乎是过去6年中唯一更新的python SOAP服务。@TarantWave我不会根据最近的更改来选择。除了bug修复,我不希望库有很多更新。SOAP的最后一稿是2003年。因此,可能在几年内高度活跃的开发,然后在那之后-不会有太多期望。同意。如果我必须用Python生成SOAP(这看起来像是纯粹的痛苦),我可能会选择一个旧的选项。@JonClements的观点很好,但另一个问题是,对旧项目的支持基本上已经不存在了,或者在ZSI的情况下,例如,它们依赖于不起作用的库(pyXML是一场噩梦)。