Python 如果try打印空字符串,如何执行except块

Python 如果try打印空字符串,如何执行except块,python,mysql,mysql-connector-python,Python,Mysql,Mysql Connector Python,我想在SQL表中搜索一条记录,如果找不到该记录,我想打印一条错误消息。我正在使用try/except块来执行此操作。但是,不会显示错误消息。我认为发生的是,当SQL无法找到该记录时,它不会引发错误。它只会打印一个空行。因此,不会执行except块,因为python认为try块已成功执行 代码: 将mysql.connector导入为sql mydb=sql.connect(host=“localhost”,user=“root”,passwd=“password”,database=“menag

我想在SQL表中搜索一条记录,如果找不到该记录,我想打印一条错误消息。我正在使用try/except块来执行此操作。但是,不会显示错误消息。我认为发生的是,当SQL无法找到该记录时,它不会引发错误。它只会打印一个空行。因此,不会执行except块,因为python认为try块已成功执行

代码:

将mysql.connector导入为sql
mydb=sql.connect(host=“localhost”,user=“root”,passwd=“password”,database=“menagerie”)
mycursor=mydb.cursor()
尝试:
mycursor.execute(“从宠物中选择*,其中name='Fluff'))
data=mycursor.fetchall()
对于数据中的i:
印刷品(一)
除:
打印(“未找到”)
这里,在表pet中,没有名为Fluff的记录。因此,我想打印“未找到”消息。但是,python打印一个空字符串


如果有任何解决问题的方法,无论是使用try/except还是任何其他方法,请务必让我知道。谢谢。

如果没有满足给定条件的记录(
name='Fluff'
,在您的情况下),mysql将返回一个空集,并且不会产生错误

mysql> select * from job;
+-----+-------------+--------+
| Eno | designation | salary |
+-----+-------------+--------+
|   1 | PGT         |  21000 |
|   3 | TGT         |  19000 |
|   4 | PGT         |  23000 |
|   5 | Primary     |  12000 |
+-----+-------------+--------+
4 rows in set (0.02 sec)

mysql> select * from job where Eno=7;
Empty set (0.00 sec)
您可以检查
数据
是否为空列表,而不是使用
try and except

mycursor.execute("SELECT * FROM pet  where name='Fluff'")
data = mycursor.fetchall()
if bool(data)==False:
      print("Not found")
else:     
      for i in data:
           print(i)

如果没有满足给定条件的记录(
name='Fluff'
),mysql将返回一个空集,并且不会产生错误

mysql> select * from job;
+-----+-------------+--------+
| Eno | designation | salary |
+-----+-------------+--------+
|   1 | PGT         |  21000 |
|   3 | TGT         |  19000 |
|   4 | PGT         |  23000 |
|   5 | Primary     |  12000 |
+-----+-------------+--------+
4 rows in set (0.02 sec)

mysql> select * from job where Eno=7;
Empty set (0.00 sec)
您可以检查
数据
是否为空列表,而不是使用
try and except

mycursor.execute("SELECT * FROM pet  where name='Fluff'")
data = mycursor.fetchall()
if bool(data)==False:
      print("Not found")
else:     
      for i in data:
           print(i)

您必须包含所需的异常,因此,异常弹出窗口:

try:
    mycursor.execute("SELECT * FROM pet  where name='Fluff'")
    data = mycursor.fetchall()
    for i in data:
        print(i)

except sql.Error as err:
    print("Error Code: ", err)

您必须包含所需的异常,因此,异常弹出窗口:

try:
    mycursor.execute("SELECT * FROM pet  where name='Fluff'")
    data = mycursor.fetchall()
    for i in data:
        print(i)

except sql.Error as err:
    print("Error Code: ", err)

检查
数据
是否为空列表。检查
数据
是否为空列表。感谢您的帮助。但是,在这里,except块没有执行。所以,错误代码不会被打印出来。你能从你的数据中提供演示吗?因为我想检查元组输出中有多少项。共有9条记录。单击此链接下载示例数据库。谢谢你的帮助。但是,在这里,except块没有执行。所以,错误代码不会被打印出来。你能从你的数据中提供演示吗?因为我想检查元组输出中有多少项。共有9条记录。单击此链接下载示例数据库。