So in separaten Scripts erstellen ich eine verteilte Eigenschaft Liste Datenbanktyp, was sie in Form Wörterbucheinträge erstellen:Schaumseife Web-Service-Client - mehrere Wörterbuch Werte zurückgeben Problem Python
ID: Eigentümer, Hausnummer, Postleitzahl, Preis
Ich versuche dann, diese Eigenschaftsliste durch einen Soap-Webdienst zu erreichen, wobei ich nach Postleitzahl oder Preisspanne suchen kann.
Es funktioniert fast gut, außer die Rückgabe an den Client wird nur maximal 1 Eigenschaft zurückgeben (auch wenn es mehr mit der angegebenen Spezifikation gibt).
Seife Servercode:
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]
mit Client-Code:
def postcode_option():
searchfor = input("Please enter a postcode: ")
print(hello_client.service.postcode_search("{}".format(searchfor)))
gibt die folgende Ausgabe
SUCHE NACH:
1 - PLZ 2 - Preis 3 - Beenden
Wählen Sie eine Option: 1 Bitte geben Sie eine Postleitzahl: CF24 4AN (string) {
string [] = "Bob", "23", "CF24 4AN", "150000",}
Aber ich möchte im wesentlichen alle diese Werte in einem Eintrag haben und dann alle Werte der nächsten Eigenschaft in der nächsten, dh
string [] = „Bob, 23, C F24 4AN, 150000" , "Jim, 24, CF24 4AN, 100000",}
Ich habe versucht, das Loswerden der "Rückkehr Inhalt [k]" Zeile in der Server-Seite, die das Drucken endet die korrekte Ausgabe, aber NUR auf dem Server-Terminal - der Client gibt schließlich None aus.
Ich möchte, dass die Client-Seite die korrekte Ausgabe mehrerer Wörterbucheinträge druckt, aber ich kämpfe.
Ich habe versucht, eine Liste zu erstellen, aber dort endet ein getChild-Fehler, so dass ich mir nicht sicher bin, wie ich das angehen soll.
Hilfe bitte!