Empresas
Empleos
  • Sobre nosotros
  • Soluciones
    • Publicación de vacantes
      Publica tu vacante y recibe candidatos calificados en 48h.
    • Evaluación de candidatos
      500+ pruebas técnicas y psicológicas, más anti-fraude.
    • Headhunting
      Búsqueda ejecutiva a la medida de principio a fin.
    • Nómina + EOR
      Dispersión de nómina y EOR en más de 15 países de LATAM.
  • Precios
  • Empleos

0

514
Vistas
Cómo verificar si existe una columna, si existe, devolver un valor de ella

En psycopg2, si tengo una tabla:

 +------+-----+-------+ | name | age | color | +------+-----+-------+ | Bob | 25 | red | | Bill | 50 | blue | | Jane | 45 | black | +------+-----+-------+

Si cursor.execute("SELECT * FROM mySchema.this_table LIMIT 1") , verifico si el color existe con: colnames = [desc[0] for desc in cursor.description] luego busco colnames para 'color'

entonces creo que obtengo la fila con: myrow = importCursor.fetchone()

pero, ¿cómo obtengo el valor de 'color' de esa fila? color = importCursor.fetchone()['color'] pero eso no funciona.

¿Cómo obtengo el valor de color de la fila devuelta por esa instrucción SELECT? No sé cuántas columnas hay en la tabla, o si la columna 'color' siempre será la columna n. ° 3. Tengo que hacer esto para un montón de columnas en esta tabla (verifique si existe, si existe, devuelva la columna valor de la fila), ¡así que una forma eficiente es la mejor!

over 4 years ago · Santiago Trujillo
1 Respuestas
Responde la pregunta

0

Seleccionar solo algunas columnas

Si selecciona solo ciertas columnas, entonces conoce el orden de las columnas.

 cursor.execute("SELECT name, age, color FROM mySchema.this_table LIMIT 1")

Ahora sabes que la columna 0 es name , 1 es age , 2 es color . Entonces puedes elegir cuál con algo como myrow[1] .

Obtener un mapa de columnas primero

Puede obtener un mapa de las columnas devueltas y luego usarlo para averiguar dónde buscar.

 column_names = [desc[0] for desc in cursor.description] if 'color' in column_names: color = cursor.fetchOne()[column_names.index('color')]

Esto debería ser relativamente eficiente, porque solo necesita calcular la lista de nombres de columna una vez después de la consulta, y luego puede asignar el nombre de columna a un número de columna con operaciones de lista simples como index y in , que son mucho más rápidas que presionar el botón base de datos de nuevo.

over 4 years ago · Santiago Trujillo Denunciar
Responde la pregunta
Encuentra empleos remotos

¡Descubre la nueva forma de encontrar empleo!

Top de empleos
Top categorías de empleo
Empresas
Publicar vacante Precios Comercial
Legal
Términos y condiciones Política de privacidad
© 2026 PeakU Inc. All Rights Reserved.
Andres GPT
Recomiéndame algunas ofertas
Necesito ayuda