用python 实现 从数据库中 按照用户、时间取,如果tts字段相同则标记为一轮对话,按时间累计标记
时间: 2023-05-21 18:04:17 浏览: 151
可以使用以下代码实现:
```python
import pymysql
# 连接数据库
connection = pymysql.connect(host='localhost',
user='root',
password='password',
db='chatbot_database',
charset='utf8mb4',
cursorclass=pymysql.cursors.DictCursor)
try:
with connection.cursor() as cursor:
# 选择需要查询的字段
sql = "SELECT user, time, tts FROM conversations ORDER BY user, time ASC"
cursor.execute(sql)
# 初始化前一个用户、前一个时间和前一个tts
prev_user = None
prev_time = None
prev_tts = None
# 遍历结果集
for row in cursor:
# 如果当前用户和时间与前一个不同,则标记为新的一轮对话
if row['user'] != prev_user or row['time'] != prev_time:
print("New conversation round:")
print("User: ", row['user'])
print("Time: ", row['time'])
# 如果tts与前一个相同,则标记为同一轮对话
if row['tts'] == prev_tts:
print("Same conversation round.")
# 记录当前用户、时间和tts
prev_user = row['user']
prev_time = row['time']
prev_tts = row['tts']
finally:
connection.close()
```
其中,`chatbot_database`为数据库名,`conversations`为表名,包含三个字段:`user`表示用户,`time`表示时间,`tts`表示文本转语音。这段代码的目的是按照用户和时间,标记相同的tts为同一轮对话,并输出用户、时间和轮次信息。
阅读全文