PostgreSQL
 sql >> Database >  >> RDS >> PostgreSQL

TypeError:l'oggetto 'int' non supporta l'indicizzazione

cursor.execute('
    SELECT "Indicator"."indicator" 
    FROM "Indicator" 
    WHERE "Indicator"."some_id" =   %s;', [some_id])

Questo trasforma il some_id parametro in un elenco, che è indicizzabile. Supponendo che il tuo metodo funzioni come penso, dovrebbe funzionare.

L'errore si verifica perché da qualche parte in quel metodo, probabilmente sta tentando di eseguire un'iterazione su quell'input o di indicizzarlo direttamente. Forse così:some_id[0]

Rendendolo un elenco (o iterabile), gli consenti di indicizzarlo nel primo elemento in questo modo.

Puoi anche trasformarlo in una tupla facendo questo:(some_id,) che ha il vantaggio di essere immutabile.