我有以下不完整的功能:
def logs(user_logs):
try:
conn = psycopg2.connect(DB_CONNECTION_STRING)
cursor = conn.cursor()
cursor.execute("INSERT INTO \"Logs\" (user_id, telegram_nickname, command) VALUES (%s, %s, %s);", user_logs,)
conn.commit()
return None
except Exception as e:
return e
我想在"命令"之后添加一个增量列,调用" usage"。目标是跟踪来自电报机器人的命令的使用情况。 示例:command> / start usage> 1如果另一个用户输入/ start,则使用次数应增加1,依此类推。
答案 0 :(得分:0)
您的日志记录功能按用户ID分组命令,但您似乎想要所有用户的总体计数?如果是这种情况,添加"用法"则没有意义。列到日志表。
您可以使用单独的表来保持每个命令的使用次数,但它根本不会做任何事情。保留当前日志表,然后使用SQL获取计数:
select count(*) from logs where command = '/start'
然后你可以找到任何命令的当前计数。
这也更灵活;如果您想要单个用户的计数,那么您可以扩充WHERE子句以按用户ID进行过滤。使用GROUP BY
也可以进行分组。
原始回答
您是否只是将命令字符串的第一部分传递给日志功能?
if text.startswith('/'):
command = text.split()[0]
logs(user_id, telegram_nickname, command)
if command == '/start':
etc...etc..
此处str.split()
用于获取命令的第一部分以进行记录。