如何在客户端的对象中获取数组?

时间:2019-11-06 15:54:47

标签: python arrays soap spyne

我想在客户端的对象中获取一个数组,但是我需要像这样访问字典:

 response.BODY["string"]

首选解决方案是:

 response.BODY

对于以下代码:

class ServerResponse(ComplexModel):
    BODY = Array(String)

    def __init__(self, BODY):
        self.BODY = BODY

class SomeService(ServiceBase):
    @rpc(_returns=ServerResponse)
    def reportEvent(ctx):
        return ServerResponse(["1", "2"])

我是spyne的新手,所以非常感谢您提供帮助。

1 个答案:

答案 0 :(得分:0)

Array创建称为 wrapped 的数组。如果您需要解开包装的商品,可以尝试:

class ServerResponse(ComplexModel):
    BODY = String(max_occurs='unbounded')

    def __init__(self, BODY):
        self.BODY = BODY

这将重复<BODY>标签,而不是在<string>标签内 重复<BODY>标签。

但是,这不是在SOAP世界中处理数组的规范方法。一些客户端自动检测包装的阵列。如果您不愿意,我建议您更改客户端库或学习使用它。