将Python dict映射到WSDL复杂类型

时间:2013-09-02 08:31:40

标签: python soap wsdl spyne

我有一个SOAP服务方法,希望接收dict类型的参数。

目前我正在使用以下方法解决这个问题:

class KeyValue(ComplexModel):
    key = Mandatory.Unicode
    value = Mandatory.Unicode

class ASoapService(ServiceBase):

    @rpc(KeyValue.customize(min_occurs=0, max_occurs='unbounded'))
    def a_method(ctx, a_dict):
        # here a_dict is a list of KeyValue instances
        # convert it to a real dict
        a_dict = {item.key: item.value for item in a_dict}
        ...

使用JSON客户端进行此服务的方法我会传递:

{"a_method":
  {"a_dict": [
    {"key": "key1", "value": "value1"},
    {"key": "key2", "value": "value2"},
    ...
  ]}
}

这是丑陋的,imo。

是否有更好的方法将Python字典映射到WSDL类型,以便能够传递:

{"a_method":
  {"a_dict": {
    "key1": "value1",
    "key2": "value2",
    ...
  }
}

0 个答案:

没有答案