如何解决即使结果在表中,在mysql DB中也找不到与python相匹配的内容
我有生成随机数的代码,还有一个mysql数据库,该数据库具有一些应与许多随机生成的数字匹配的数字。一旦找到匹配项,该程序应会中断,但是即使我看到已生成多个匹配项,它仍会继续运行。我仔细检查了数据库几次,所有的数字都在那里。我是编码的新手,所以我猜我在查询数据库错了吗?将不胜感激。谢谢
import random
import mysql.connector
mydb = mysql.connector.connect(
host = "localhost",user = "root",passwd = "password",database = "testdb"
)
my_database = mydb.cursor()
sql_statement = "SELECT * FROM numbers"
my_database.execute(sql_statement)
output = my_database.fetchall()
while True:
ran = random.randrange(100000,200000,100)
if ran in output:
print("MATCH!",ran)
break
else:
print(ran)
'''
解决方法
根据mysql python连接器文档,fetchall()返回元组列表。因此,您将需要遍历每个元组,并在任何一个元组中发现运行时中断。另外,您也可以使用短提示功能any(),如下所示,这会更加Python化。
https://dev.mysql.com/doc/connector-python/en/connector-python-api-mysqlcursor-fetchall.html
while True:
if any(ran in tup for tup in output):
print("MATCH!",ran)
break
else:
print(ran)
版权声明:本文内容由互联网用户自发贡献,该文观点与技术仅代表作者本人。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如发现本站有涉嫌侵权/违法违规的内容, 请发送邮件至 dio@foxmail.com 举报,一经查实,本站将立刻删除。