我有一个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",
...
}
}