Resultados de consulta de una sola columna en SQLAlchemy

En esta publicación, profundizaremos en los resultados obtenidos cuando ejecutamos una consulta de una sola columna usando SQLAlchemy.

SQLAlchemy es un módulo de python increíble y fácil de usar que se usa para conectar bases de datos de python y SQL, lo que aumenta los poderes de cualquier programador. Para instalar SQLAlchemy, ejecute el siguiente comando en su terminal:

pip install sqlalchemy pymysql

Nota: pymysql es una dependencia de SQLAlchemy que debemos instalar para esta publicación.

Entonces, cuando ejecutamos una consulta de una sola columna usando SQLAlchemy, obtenemos un resultado. El objeto de resultado contendrá tuplas de valores de esa consulta de una sola columna. Así es como funciona la funcionalidad básica.

Ejecutemos algunas consultas y veamos lo anterior.

Base de datos utilizada: 

Ejemplo 1:

Busquemos todos los nombres usando SQLAlchemy y veamos el resultado obtenido. La consulta SQL se verá así:

SELECT name FROM student;

Python3

from sqlalchemy import create_engine
  
user, password, host, database = 'root', '123', 'localhost', 'geeksforgeeks'
engine = create_engine(
    url=f'mysql+pymysql://{user}:{password}@{host}/{database}?charset=utf8')
  
connection = engine.connect()
  
table_name = 'student'
  
query = f'SELECT name FROM {table_name} ;'
result = connection.execute(query)
  
for e in result:
    print(e)

Producción

Ejemplo 2:

Busquemos todas las secciones de estudiantes con sno es 1 o 2 o 6 de la tabla de estudiantes.

La consulta SQL se verá así:

SELECT section FROM student WHERE sno IN (1,2,6);

Python3

from sqlalchemy import create_engine
  
user, password, host, database = 'root', '123', 'localhost', 'geeksforgeeks'
engine = create_engine(
    url=f'mysql+pymysql://{user}:{password}@{host}/{database}?charset=utf8')
  
connection = engine.connect()
  
table_name = 'student'
  
query = f'SELECT section FROM {table_name} WHERE sno IN (1,2,6) ;'
result = connection.execute(query)
  
for e in result:
    print(e)

Producción

Entonces, como puede ver en los dos ejemplos anteriores, la consulta de una sola columna devuelve el resultado que contiene tuplas cuyos elementos son valores obtenidos de la consulta.

Obtener una lista que contiene valores directos de resultados en lugar de tuplas

Ahora, es posible que necesite obtener los valores directamente en lugar de almacenarlos en una tupla y obtener esas tuplas.

Como puedes observar, el primer elemento de cada tupla es nuestro valor. Entonces, puede ejecutar un ciclo for en el objeto de resultado y en cada iteración, obtendrá la tupla. Y puede agregar el primer elemento de esa tupla a su lista personalizada y obtener fácilmente esos valores. Veamos el código de lo anterior:

Python3

values = []
for e in result:
    values.append(e[0])

La lista de valores contendrá todos los valores obtenidos directamente. Puede reducir el n. de líneas utilizadas anteriormente utilizando la comprensión de listas. El código para eso es:

Python3

values = [ e[0] for e in result ]

Ejemplo :

Python3

from sqlalchemy import create_engine
  
user, password, host, database = 'root', '123', 'localhost', 'geeksforgeeks'
engine = create_engine(
    url=f'mysql+pymysql://{user}:{password}@{host}/{database}?charset=utf8')
  
connection = engine.connect()
  
table_name = 'student'
  
query = f'SELECT name FROM {table_name};'
result = connection.execute(query)
  
values = []
for e in result:
    values.append(e[0])
  
print(values)

Producción

Publicación traducida automáticamente

Artículo escrito por mycodenotein y traducido por Barcelona Geeks. The original can be accessed here. Licence: CCBY-SA

Deja una respuesta

Tu dirección de correo electrónico no será publicada. Los campos obligatorios están marcados con *