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).
Related problems
- Why do I get "TypeError: not all arguments converted during string formatting" when trying to use a string in a parameterized SQL query?
- How to implement __iter__(self) for a container object (Python)
- Why do I get "TypeError: not all arguments converted during string formatting" when trying to use a string in a parameterized SQL query?