Buenos dias, tengo un problema con Python,
Lo que pretendo hacer es algo muy sencillo...
Aceptar un número en la consola
buscar en una tabla un registro con este número
si lo encuentra
sumar 1 a un contador
actualizar
si no lo encuentra
grabar un nuevo registro
el campo de la base de datos que debe recibir el número es integer.
El error que me da es en el momento de hacer el Select y me pone
'int' object does not supporting indexing
El código escrito que tengo es:
Código python:
Ver originaldef actualizar_numero(numero_entrada):
try:
cur=cn.cursor()
SQL = """SELECT * FROM tbl_numeros WHERE numero = %s"""
data = (numero_entrada)
cur.execute(SQL, data)
filas = cur.fetchone() #selecciona en fila el registro que cumple la condicion
if filas:
numero_id, numero, veces = filas # extraer los campos
veces = veces + 1
update_numero(numero_id, veces)
else:
#print "no encontrado registro en la tabla tbl_numeros"
insertar_numero(numero_entrada)
cur.close()
except Exception, e:
cur.close()
print "select erroneo en la tabla tbl_numero", e
#
def update_numero(numero_id, veces):
try:
cur = cn.cursor()
SQL = """UPDATE tbl_numeros
SET veces = %s
WHERE numero_id = %s"""
data = (veces, numero_id)
cur.execute(SQL, data)
except Exception, e:
print "Error en update tabla tbl_numeros", e
cur.close()
#
def insertar_numero(numero_entrada):
try:
cur=cn.cursor()
SQL = """INSERT INTO tbl_numeros (numero, veces)
VALUES (%s,%s);"""
data = (numero_entrada, 1)
cur.execute(SQL, data)
except Exception, e:
print "mal insert en tabla tbl_numeros", e
cur.close()
##################################################
# Inicio
##################################################
import psycopg2
global cn
#conexion a la base de datos
cn = psycopg2.connect("host=localhost dbname=frx_senyales_precision_H user=postgres password=*******")
numero_entrada = int(raw_input("Dame un numero: "))
actualizar_numero(numero_entrada)
cn.commit()
print "fin proceso..."
Utilizo Python, Psycopg2 y Postgresql
¿alguien puede aclararme que pasa?.
Gracias