扭曲得到错误顺序的参数

时间:2012-03-28 05:02:43

标签: python sqlalchemy soappy

现在我使用twisted.soap来构建我的soap服务器,我想用这样的多个参数构建一个函数:

def soap_searchFlight(self,name=None,startpoint=None,destination=None):
    d=Deferred()
    d.addCallback(functions.searchFlight)
    d.addErrback(functions.failure)
    print "name"+name
    print "startpoint"+startpoint
    print "destination"+destination
    requestdic={"name":name,"startpoint":startpoint,"destination":destination}
    print requestdic
    d.callback(requestdic)
    return d.result

我写了一个测试脚本:

    import SOAPpy
    import twisted
    p = SOAPpy.SOAPProxy('http://localhost:7080/')
    p.config.dumpSOAPOut=1
    p.config.dumpSOAPIn=1
    print p.searchFlight(name='3548',startpoint="北京飞机场",destination="上海飞机场")

它让我回来了:

name上海飞机场
startpoint北京飞机场
destination3548

看起来args命令是完全错误的,所以会发生什么以及如何确保正确的顺序?

1 个答案:

答案 0 :(得分:1)

没有看到functions.searchFlight,这有点难以辨别,但似乎你在回调中将一个字典传递给in,然后假设该字典中的项目是按特定顺序(他们不是)。

更改functions.searchFlight的签名以获取元组,并按照您想要的顺序使用元组调用它。 (或传递一个有序的字典......或者不要假设字典的项目按照你创建的顺序)。