TypeError: 'int' object does not support indexing

postgresql, python, sql

Solution

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

This turns the `some_id` parameter into a list, which is indexable. Assuming your method works like i think it does, this should work.

The error is happening because somewhere in that method, it is probably trying to iterate over that input, or index directly into it. Possibly like this: `some_id[0]`

By making it a list (or iterable), you allow it to index into the first element like that.

You could also make it into a tuple by doing this: `(some_id,)` which has the advantage of being immutable.

Problem

I have this query: ``` some_id = 1 cursor.execute(' SELECT "Indicator"."indicator" FROM "Indicator" WHERE "Indicator"."some_id" = %s;', some_id) ``` I get the following error: ``` TypeError: 'int' object does not support indexing ``` some_id is an int but I'd like to select indicators that have some_id = 1 (or whatever # I decide to put in the variable).

Original source

Related problems