2017-04-11 56 views
0

所以在单独的脚本我创建分布式属性列表数据库类型的东西通过形式创建字典条目:泡沫肥皂Web服务客户端 - 多个字典中的值返回问题蟒蛇

ID:老板,housenumber,邮编,价格

我则试图通过SOAP Web服务来访问属性列表,由此我可以通过邮政编码或价格范围进行搜索。

它的功能几乎是很好,除了在返回给客户端将只返回最多1个属性(即使有更多的与给定的规范)的。

皂服务器代码:

from spyne import Application, rpc, ServiceBase, Iterable, Integer, Unicode 
from spyne.protocol.soap import Soap11 
from spyne.server.wsgi import WsgiApplication 
from spyne.decorator import srpc 
import Pyro4 

class PropertySearch(ServiceBase): 

    @srpc(Unicode, _returns=Iterable(Unicode)) 
    def postcode_search(searchfor): 

     warehouse = Pyro4.Proxy("PYRONAME:propertylist.warehouse") 
     contents = warehouse.list_contents() 

     for k in contents: 
      if searchfor in contents[k][2]: 
       print(k, ":", contents[k]) 
       return contents[k] 

与客户端代码:

def postcode_option(): 
    searchfor = input("Please enter a postcode: ") 
    print(hello_client.service.postcode_search("{}".format(searchfor))) 

返回以下输出

SEARCH BY:

1 - 邮编2 - 价格3 - 退出

选择一个选项:1请输入邮编:CF24 4AN(字符串数组){
串[] = “鲍勃”, “23”, “CF24 4AN”, “150000”,}

但我想基本上有所有这些值的一个条目,然后在接下来的一个属性的所有值,即

字符串[] = “鲍勃,23,C F24 4AN,150000" , “吉姆,24,CF24 4AN,100000”,}

我试图摆脱的 “这结束了印刷返回内容[k]的在服务器侧” 的路线,正确的输出,但仅在服务器终端上 - 客户端最终输出None。

我想有客户端打印多个字典项的正确的输出,但我在努力。

我试图创建一个列表,但也最终成为一个getChild错误,所以我不确定如何处理这个。

请帮忙!

回答

0

排序它。对于任何有兴趣的人来说,必须从spyne导入'Array'并且必须将returns =参数更改为'Array'