Python SQLAlchemy: obtenga nombres de columnas dinámicamente

En este artículo, vamos a ver cómo obtener dinámicamente los nombres de las columnas de una tabla en SQLAlchemy usando Python.

Base de datos usada para demostración:

mesa de estudiante

Entonces, nuestra tabla de estudiantes tiene 5 columnas, a saber, sno, nombre, fecha de nacimiento, clase y sección, y nuestra tarea es obtener todos estos nombres de columna en nuestro código de Python.

En primer lugar, importaremos el módulo sqlalchemy, crearemos un motor y luego crearemos una conexión con la base de datos. Luego ejecutaremos una consulta en la tabla cuyos nombres de columna queremos.

Ejemplo 1:

Ahora, usando el método de claves de ese objeto de resultado obtenido al ejecutar la consulta, podemos obtener todos los nombres de las columnas dinámicamente.

Python3

from sqlalchemy import create_engine
  
table_name = 'student'
  
engine = create_engine("mysql+pymysql://root:root123@localhost/geeksforgeeks")
connection = engine.connect()
  
result = connection.execute(f"SELECT * FROM {table_name}")
  
print(result.keys())

Producción:

Salida del código anterior

Ejemplo 2:

También podemos usar result.cursor.description del objeto de resultado. result.cursor.description es una lista que contiene tuplas cuyo primer elemento es el nombre de la columna. Ejecutemos un bucle for en él y almacenemos el primer elemento en nuestra variable de columnas personalizadas.

Python3

from sqlalchemy import create_engine
  
table_name = 'student'
engine = create_engine("mysql+pymysql://root:root123@localhost/geeksforgeeks")
connection = engine.connect()
result = connection.execute(f"SELECT * FROM {table_name}")
columns = []
  
for elem in result.cursor.description:
    columns.append(elem[0])
  
print(columns)

Salida del código anterior

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 *