繁体   English   中英

Python校验数小于

[英]Python check number is less than

if uservar[0][0] == text_hashed:
                sql = "SELECT expires FROM akeys WHERE user = %s"
                var = (message.author.id,)
                mycursor.execute(sql, var)
                myresultrank = mycursor.fetchall()
                guild = client.get_guild(CENSORED)

                if myresultrank < 1:
                    print("Less")
                else:
                    print("Normal")

                sql = """UPDATE akeys SET user = %s WHERE license = %s"""
                val = (message.author.id, text_hashed)
                mycursor.execute(sql, val)
                mydb.commit()

我试图检查数据库中的数字是否小于 1 但我收到此错误

await coro(*args, **kwargs)
File "My Path", line 529, in 
on_message
if myresultrank < 1:
TypeError: '<' not supported between instances of 'list' and 'int'

fetchall()您获取所有匹配的记录,因此是错误消息中提到的“列表”。 您需要访问 myresultrank 列表中的元素。 您不能将查询结果列表与整数进行比较。

试试这些改变

                myresultrank = mycursor.fetchone()

. . .

                if myresultrank[0] < 1:

这一行正在返回一个list

myresultrank = mycursor.fetchall()

稍后,我们试图将列表与整数进行比较,这会导致您的错误。

如果列表包含您想要提取的值,以便您可以将其与整数 (int) 进行比较,则可以以类似于以下的方式索引该值:

if myresultrank[i] < 1:

其中i是列表中存储您关心的值的位置。

暂无
暂无

声明:本站的技术帖子网页,遵循CC BY-SA 4.0协议,如果您需要转载,请注明本站网址或者原文地址。任何问题请咨询:yoyou2525@163.com.

 
粤ICP备18138465号  © 2020-2024 STACKOOM.COM