【发布时间】:2022-01-18 12:59:26
【问题描述】:
我有一个存储两个用户之间对话的消息表。表结构如下:
部分数据如下表:
所以我想编写一个函数,为我提供唯一用户的最后一条消息。比如上面的数据表,函数会返回下面的json。
[ {"mobile":"01675571522", "last_message":"为什么你不能给出正确的答案"}, {"mobile":"01773289045", "last_message":"Amr 01773289045 aii number a kikiBankasia account open kora ase"} ]
如何在 python 的 SQLAlchemy ORM 中做到这一点?
我的尝试:
我目前使用以下代码执行此操作:
users_set = set()
list_of_users = []
lst_msg_list = []
users = ChatResponseDB.read_all()
users_list = PreProcess.get_chat_history_list(users)
for item in users_list:
chat_history = ChatResponseDB.read_response_by_user(item['mobile_number'])
string_value = str(chat_history[-1])
string_value = string_value[2:30] + '...'
lst_msg_list.append(string_value)
users_set.add(item['mobile_number'])
这种方法需要 10-12 秒。我怎样才能做得更好?
【问题讨论】:
标签: python mysql sql sqlalchemy chatbot