我在代码中使用此选项:
get_id = message.text.split(' ')[-1] #get ref
print(get_id) ###print /start or /start id
ref_id = int(get_id)
if get_id != usr_id[user_id]:
query = "INSERT INTO refers (`usr_id`, `ref_ids`) VALUES (%s, %s);"
cursor = connect.cursor()
cursor.execute(query, (usr_id[user_id], ref_id))
query_two = "UPDATE users SET invited = invited + 1 WHERE usr_id = %s"
curs = connect.cursor()
curs.execute(query_two, usr_id[user_id])
connect.commit()
如果我确实得到了\u id=message.text.split(“”)[1] 得到
out of range this
如果[-1],则
ValueError: invalid literal for int() with base 10: '/start'
每次都去。我不知道我能做什么。有人能帮我吗
如果您可能有
/start
或/start id
,那么您应该在尝试获取[1]
或甚至[-1]
之前检查len(message.text.split(' '))
。如果len()
给出了1
,那么您只有/start
,并且没有可以转换为int
的数字,您应该跳过它或使用一些默认值您可能还需要
try/except
,因为用户可能会将文本(即Hello
)而不是数字放进去相关问题 更多 >
编程相关推荐