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('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()
    
    当我们运行上述程序时,我们得到以下输出 -
    
    [[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}]]