Python - RPC JSON Server

JSON- oder JavaScript-Objektnotation ist ein leichtes Datenaustauschformat. Menschen können leicht lesen und schreiben. Es ist für Maschinen einfach zu analysieren und zu generieren. Der auf JSON basierende RPC-Aufruf kann Daten sehr kompakt und effizient senden als der normale XML-basierte RPC-Aufruf. Das Python-Moduljsonrpclib kann einen einfachen JSON-basierten Server und Client erstellen.

Beispiel

Im folgenden Beispiel erstellen wir einen einfachen JSON-Server und erstellen darin eine Funktion. Diese Funktion unterteilt eine größere Liste in kleinere Listen, in denen die Länge des Arguments sowie das Argument selbst angegeben sind.

# server program
from jsonrpclib.SimpleJSONRPCServer import SimpleJSONRPCServer
def findlen(*args):
	res = []
	for arg in args:
		try:
			lenval = len(arg)
		except TypeError:
			lenval = None
		res.append((lenval, arg))
	return res
def main():
	server = SimpleJSONRPCServer(('localhost', 1006))
	server.register_function(findlen)
	print("Start server")
	server.serve_forever()
if __name__ == '__main__':  
    main()
# Call by client
from jsonrpclib import Server
def main():
    conn = Server('http://localhost:1006')
    print(conn.findlen(('a','x','d','z'), 11, {'Mt. Abu': 1602, 'Mt. Nanda': 3001,'Mt. Kirubu': 102, 'Mt.Nish': 5710}))
if __name__ == '__main__':
    main()

Wenn wir das obige Programm ausführen, erhalten wir die folgende Ausgabe:

[[4, [u'a', u'x', u'd', u'z']], [None, 11], [4, {u'Mt. Abu': 1602, u'Mt. Kirubu': 102, u'Mt. Nanda': 3001, u'Mt.Nish': 5710}]]