if isinstance(message[1], list): # 消息类型为列表 data = json.dumps({"type": "online_list", "data": message[1]}) for i in range(len(users)): # 向所有用户发送在线列表 users[i][0].send(data.encode()) if isinstance(message[1], dict): # 消息类型为字典 # friend_list_all = {} # 存放所有用户的好友 for i in range(len(users)): # 遍历所有用户 username = users[i][1] # 获取用户名字 friend_list = Userfriend(username) # 获取用户好友列表 data = json.dumps({"type": "friend_list", "data": friend_list}) users[i][0].send(data.encode()) 修改上述代码使其正确
时间: 2024-01-13 18:03:23 浏览: 81
list转成json对象
可以将判断消息类型的两个if语句合并为一个,并且在发送好友列表之前先将所有用户的好友列表都存储到一个字典中,代码如下:
```
if isinstance(message[1], list): # 消息类型为列表
data = json.dumps({"type": "online_list", "data": message[1]})
for i in range(len(users)): # 向所有用户发送在线列表
users[i][0].send(data.encode())
elif isinstance(message[1], dict): # 消息类型为字典
friend_list_all = {} # 存放所有用户的好友
for i in range(len(users)): # 遍历所有用户
username = users[i][1] # 获取用户名字
friend_list = Userfriend(username) # 获取用户好友列表
friend_list_all[username] = friend_list # 将好友列表存储到字典中
data = json.dumps({"type": "friend_list", "data": friend_list})
users[i][0].send(data.encode())
```
这样就可以正确地发送在线用户列表和所有用户的好友列表了。
阅读全文