PYMYSQL "fetchone() is None" 相当于fetchall()?
PYMYSQL "fetchone() is None" equivalent to fetchall()?
当用户输入ID修改销售时,我需要控制空记录。
这是诀窍,如果我用 cursor.fetchone() 而不是 cursor.fetchall(),条件 是 None 验证该行是空的,并告诉用户输入另一个 ID,但它似乎根本无法与 fetchall() 一起使用。
我必须使用 fetchall,否则我会开始遇到漂亮格式的问题。
consulta = "SELECT id, CAST(fecha AS CHAR), id_cliente, total FROM compra WHERE id = %s;"
cursor.execute(consulta, (id))
compra = cursor.fetchall()
**if (compra is None):**
print("ID is not valid.\n")
exito = False
return
else:
exito = True
T.clear_rows()
for x in compra:
T.add_row(x)
clear()
print(T)
提前致谢!
Python DB API 定义了 fetchall
到 return 某种序列,无论结果中有多少行。其中 fetchone
returns None
如果没有找到行,fetchall
returns 是一个空序列。如果您的特定图书馆 return 是一个列表,您可以轻松检查列表是否为空:
compra = cursor.fetchall()
if not compra:
print("ID is not valid")
return
如果它 return 是其他类型的惰性迭代器,您可能无法判断它是否为空而不至少尝试迭代它。您可能需要
compra = cursor.fetchall()
try:
first = next(compra)
except StopIteration:
print("ID is not valid.")
return
T.clear_rows()
T.add_row(first)
for x in compra:
T.add_row(x)
可能有一个更简单的解决方案,这取决于 T
是什么以及在确定 compra
是否为空之前调用 T.clear_rows()
是否安全。
当用户输入ID修改销售时,我需要控制空记录。
这是诀窍,如果我用 cursor.fetchone() 而不是 cursor.fetchall(),条件 是 None 验证该行是空的,并告诉用户输入另一个 ID,但它似乎根本无法与 fetchall() 一起使用。
我必须使用 fetchall,否则我会开始遇到漂亮格式的问题。
consulta = "SELECT id, CAST(fecha AS CHAR), id_cliente, total FROM compra WHERE id = %s;"
cursor.execute(consulta, (id))
compra = cursor.fetchall()
**if (compra is None):**
print("ID is not valid.\n")
exito = False
return
else:
exito = True
T.clear_rows()
for x in compra:
T.add_row(x)
clear()
print(T)
提前致谢!
Python DB API 定义了 fetchall
到 return 某种序列,无论结果中有多少行。其中 fetchone
returns None
如果没有找到行,fetchall
returns 是一个空序列。如果您的特定图书馆 return 是一个列表,您可以轻松检查列表是否为空:
compra = cursor.fetchall()
if not compra:
print("ID is not valid")
return
如果它 return 是其他类型的惰性迭代器,您可能无法判断它是否为空而不至少尝试迭代它。您可能需要
compra = cursor.fetchall()
try:
first = next(compra)
except StopIteration:
print("ID is not valid.")
return
T.clear_rows()
T.add_row(first)
for x in compra:
T.add_row(x)
可能有一个更简单的解决方案,这取决于 T
是什么以及在确定 compra
是否为空之前调用 T.clear_rows()
是否安全。