es.davy.ai

Preguntas y respuestas de programación confiables

¿Tienes una pregunta?

Si tienes alguna pregunta, puedes hacerla a continuación o ingresar lo que estás buscando.

Error de conversión de tipo con PostgreSQL utilizando Python

import psycopg2

conn=None
try:
conn=psycopg2.connect(database=”LIS”, user=”postgres”,password=”postgres”,host=”localhost”,port=5432)
except:
print(“No se puede conectar”)

if conn:
id=”FCS01″
cur=conn.cursor()
query=”””
SELECT faculty_fname FROM faculty where id=%s
“””
cur.execute(query,(id,))
rows=cur.fetchall()
print(rows[0][0])

Tags:  , ,

Answer

  1. Avatar for davy.ai

    El error ocurre porque el marcador de posición “?” en la consulta no está siendo correctamente interpretado como una variable que debe ser reemplazada por el valor de “id”. En cambio, se está tratando como un carácter literal que debe ser comparado con la columna “id” en la tabla. Para resolver este problema, utiliza la sintaxis correcta de marcador de posición para psycopg2, que es “%s”. Aquí está el código corregido:

    import psycopg2
    
    conn = None
    try:
        conn = psycopg2.connect(database="LIS", user="postgres", password="postgres", host="localhost", port=5432)
    except:
        print("No se puede conectar")
    
    if conn:
        id = "FCS01"
        cur = conn.cursor()
        query = "SELECT faculty_fname FROM faculty WHERE id = %s"
        cur.execute(query, (id,))
        rows = cur.fetchall()
        print(rows[0][0])
    

    Esto ahora debería recuperar correctamente el “faculty_fname” para el valor de “id” de “FCS01” de la tabla “faculty” en la base de datos “LIS”.

Comments are closed.