Empresas
Empregos
  • Sobre nós
  • Soluções
    • Publicação de vagas
      Publique sua vaga e receba candidatos qualificados em 48h.
    • Avaliações de candidatos
      Mais de 500 testes técnicos e psicológicos, mais anti-fraude.
    • Headhunting
      Busca executiva personalizada do início ao fim.
    • Folha de Pagamento + EOR
      Dispersão de folha e EOR em mais de 15 países da LATAM.
  • Preços
  • Empregos

0

520
Visualizações
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 Respostas
Responde à pergunta

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 Relatório
Responde à pergunta
Encontrar trabalhos remotos

Descubra a nova forma de encontrar um emprego!

melhores empregos
Principais categorias de trabalho
Empresas
Postar vaga Preços Comercial
Jurídico
Termos e Condições Política de privacidade
© 2026 PeakU Inc. All Rights Reserved.
Andres GPT
Recomende algumas ofertas para mim
Preciso de ajuda