PostgreSQL
 sql >> Base de données >  >> RDS >> PostgreSQL

TypeError :l'objet 'int' ne prend pas en charge l'indexation

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

Cela transforme le some_id paramètre dans une liste, qui est indexable. En supposant que votre méthode fonctionne comme je le pense, cela devrait fonctionner.

L'erreur se produit parce que quelque part dans cette méthode, il essaie probablement d'itérer sur cette entrée ou de s'y indexer directement. Peut-être comme ceci :some_id[0]

En en faisant une liste (ou itérable), vous lui permettez d'indexer dans le premier élément comme ça.

Vous pouvez également en faire un tuple en faisant ceci :(some_id,) qui a l'avantage d'être immuable.