如果 try 打印空字符串,如何执行 except 块
How to execute the except block if try prints an empty string
我想在 SQL table 中搜索一条记录,如果找不到该记录,我想打印一条错误消息。我正在使用 try/except 块来执行此操作。但是,未显示错误消息。我认为正在发生的事情是,当 SQL 找不到该记录时,它不会引发错误。它只会打印一个空行。因此,except 块未被执行,因为 python 认为 try 块已成功执行。
代码:
import mysql.connector as sql
mydb = sql.connect(host = "localhost", user = "root", passwd = "password", database = "menagerie")
mycursor = mydb.cursor()
try:
mycursor.execute("SELECT * FROM pet where name='Fluff'")
data = mycursor.fetchall()
for i in data:
print(i)
except:
print("Not found")
这里,在tablepet中,没有名为Fluff的记录。所以,我想打印“未找到”消息。但是,python 打印出一个空字符串。
如果有任何解决问题的方法,无论是使用try/except还是任何其他方法,请告诉我。谢谢
当没有满足给定条件的记录时(name='Fluff'
在您的情况下),mysql returns 一个空集并且不会产生错误。
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)
您可以检查 data
是否为空列表,而不是使用 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)
我想在 SQL table 中搜索一条记录,如果找不到该记录,我想打印一条错误消息。我正在使用 try/except 块来执行此操作。但是,未显示错误消息。我认为正在发生的事情是,当 SQL 找不到该记录时,它不会引发错误。它只会打印一个空行。因此,except 块未被执行,因为 python 认为 try 块已成功执行。
代码:
import mysql.connector as sql
mydb = sql.connect(host = "localhost", user = "root", passwd = "password", database = "menagerie")
mycursor = mydb.cursor()
try:
mycursor.execute("SELECT * FROM pet where name='Fluff'")
data = mycursor.fetchall()
for i in data:
print(i)
except:
print("Not found")
这里,在tablepet中,没有名为Fluff的记录。所以,我想打印“未找到”消息。但是,python 打印出一个空字符串。
如果有任何解决问题的方法,无论是使用try/except还是任何其他方法,请告诉我。谢谢
当没有满足给定条件的记录时(name='Fluff'
在您的情况下),mysql returns 一个空集并且不会产生错误。
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)
您可以检查 data
是否为空列表,而不是使用 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)