Python - RPC JSON 服务器



JSON 或 JavaScript 对象表示法是一种轻量级数据交换格式。它易于人类阅读和编写。它易于机器解析和生成。基于 JSON 进行的 RPC 调用能够比基于 XML 的普通 RPC 调用以更紧凑和有效的方式发送数据。python 模块 jsonrpclib 能够创建基于 JSON 的简单服务器和客户端。

示例

在下面的示例中,我们创建一个简单的 JSON 服务器并在其中创建一个函数。此函数会将一个较大的列表分解为更小的列表,同时提到参数的长度以及参数本身。

# 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('https://127.0.0.1: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()

当我们运行上述程序时,得到以下输出 −

[[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}]]
广告