json-rpc 传递对象的python示例代码

1. json 文档

2. json-rpc 协议文档

3. 客户端代码 操作对象 json-rpc 2.0

#import json
import jsonrpclib

data1 = {
    "name": "John",
    "age": 30,
    "city": "New York"
}
data2 = {
    "name": "Laura",
    "age": 30,
    "city": "Washington.DC"
}
#j_data1=json.dumps(data)

server = jsonrpclib.ServerProxy("http://localhost:8000")

print("[+]run calc")
print("[-]2+3")
print(server.add(2,3))
print("[-]2^3")
print(server.pow(2, 3))
print("[-]4/2")
print(server.div(4, 2))

print("[+]run object")
print("[-]add user1")
print(server.add_user(1, data1))
print("[-]show all users")
print(server.show_user())
print("[-]add user2")
print(server.add_user(2, data2))
print("[-]show all users")
print(server.show_user())
print("[-]get user1")
user=(server.get_user(1))
print(user)
print("[-]update user1 age to 100")
user["age"]=100
print(server.update_user(1, user))
print("[-]show all users")
print(server.show_user())
print("[-]del user1")
print(server.del_user(1))
print("[-]show all users")
print(server.show_user())

print("[+]run failed request")
print(server.bad(4, 2))

4. 服务端代码 调用实现 json-rpc 2.0

import json
from jsonrpclib.SimpleJSONRPCServer import SimpleJSONRPCServer

d=dict()

json_rpc_server = SimpleJSONRPCServer(("localhost", 8000))

# 注册 pow,幂运算,实际调用的是已有的算数pow()
json_rpc_server.register_function(pow)

# 注册自定义的 add 函数
def add(x, y):
    return x + y
json_rpc_server.register_function(add, 'add')

# 注册自定义的add_user函数
def add_user(key, value):
    d[key]=value
    return key 
json_rpc_server.register_function(add_user, 'add_user')

# 注册自定义的get_user函数
def get_user(key):
    return d[key] 
json_rpc_server.register_function(get_user, 'get_user')

# 注册自定义的update_user函数
def update_user(key, value):
    d[key]=value
    return key 
json_rpc_server.register_function(update_user, 'update_user')

# 注册自定义的del_user函数
def del_user(key):
    d.pop(key)
    return key 
json_rpc_server.register_function(del_user, 'del_user')

# 注册自定义的show_user函数
def show_user():
    return d
json_rpc_server.register_function(show_user, 'show_user')

# 注册 fun 实例
class Fun:
    def div(self, x, y):
        return x // y
fun = Fun()
json_rpc_server.register_instance(fun)

# 运行服务器
json_rpc_server.serve_forever()

  • 0
    点赞
  • 1
    收藏
    觉得还不错? 一键收藏
  • 0
    评论
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值