PostgreSQL
 sql >> Base de Dados >  >> RDS >> PostgreSQL

TypeError:objeto 'int' não suporta indexação

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

Isso transforma o some_id parâmetro em uma lista, que é indexável. Supondo que seu método funcione como eu acho, isso deve funcionar.

O erro está acontecendo porque em algum lugar desse método, ele provavelmente está tentando iterar sobre essa entrada ou indexar diretamente nela. Possivelmente assim:some_id[0]

Ao torná-lo uma lista (ou iterável), você permite que ele seja indexado no primeiro elemento assim.

Você também pode transformá-lo em uma tupla fazendo isso:(some_id,) que tem a vantagem de ser imutável.