Python-RPC JSON 서버

JSON 또는 JavaScript Object Notation은 가벼운 데이터 교환 형식입니다. 사람이 읽고 쓰는 것은 쉽습니다. 기계가 파싱하고 생성하는 것은 쉽습니다. JSON 기반의 RPC 호출은 일반적인 XML 기반 RPC 호출보다 훨씬 간결하고 효율적인 방식으로 데이터를 전송할 수 있습니다. 파이썬 모듈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}]]