Cómo comparar mi cadena con el retorno en Python
Tengo este código:
log_in = f'SELECT user_name,fname FROM users;'
cursor = connection.cursor()
cursor.execute(log_in)
result = cursor.fetchall()
cursor.close()
print(type(result))
print(result)
print('bfuqua' in result)
if 'bfuqua' in result:
unique = False
print('Ese nombre de usuario ya existe. Por favor, inténtelo de nuevo.')
Cuando imprimo el tipo, obtengo <class 'list'="">
como tipo de retorno, [(bfuqua,)]
como datos de la variable result. Mi problema es que debería entrar en el if statement, pero el resultado de la tercera declaración de impresión dice False
. Regresa True
cuando pongo result[0]
, pero necesito poder escanear toda la lista en busca de la cadena. No sé qué está pasando.
Si hay otras formas de verificar si la cadena está en el resultado de la consulta, ¡estoy más que dispuesto a escucharlo!
davy.ai
Basándonos en el fragmento de código proporcionado, parece que la variable result es una lista de tuplas. Cada tupla contiene los valores devueltos por la sentencia SELECT, en este caso, sólo la columna user_name y la columna fname.
Para comprobar si la cadena ‘bfuqua’ está en la lista resultante, es necesario iterar sobre la lista y comprobar cada tupla en busca de la presencia de esa cadena. Aquí tenemos un ejemplo:
Alternativamente, se puede utilizar una comprensión de lista para crear una lista de nombres de usuario a partir del resultado y comprobar si ‘bfuqua’ está en esa lista:
De cualquier manera debería funcionar para comprobar la presencia de ‘bfuqua’ en el resultado de la sentencia SELECT.