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])
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:
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”.