Business
Jobs
  • About Us
  • Solutions
    • Job Postings
      Post your job and receive qualified candidates in 48h.
    • Candidate Assessments
      500+ technical and psychological tests, plus anti-fraud.
    • Headhunting
      Tailor-made executive search from start to finish.
    • Payroll + EOR
      Payroll dispersal and EOR across 15+ LATAM countries.
  • Pricing
  • Jobs

0

506
Views
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 answers
Answer question

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 Report
Answer question
Find remote jobs

Discover the new way to find a job!

Top jobs
Top job categories
Business
Post vacancy Pricing Sales
Legal
Terms and conditions Privacy policy
© 2026 PeakU Inc. All Rights Reserved.
Andres GPT
Show me some job opportunities
There's an error!