Logo Questions Linux Laravel Mysql Ubuntu Git Menu
 

TypeError: 'int' object does not support indexing

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).

like image 330
nlr25 Avatar asked Aug 20 '13 22:08

nlr25


People also ask

What does int does not support indexing mean?

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.

How do I fix TypeError int object is not iterable?

How to Fix Int Object is Not Iterable. One way to fix it is to pass the variable into the range() function. In Python, the range function checks the variable passed into it and returns a series of numbers starting from 0 and stopping right before the specified number.

How do I fix TypeError int object is not Subscriptable?

The TypeError: 'int' object is not subscriptable error occurs if we try to index or slice the integer as if it is a subscriptable object like list, dict, or string objects. The issue can be resolved by removing any indexing or slicing to access the values of the integer object.

How do I fix type error int object is not callable?

How to resolve typeerror: 'int' object is not callable. To resolve this error, you need to change the name of the variable whose name is similar to the in-built function int() used in the code. In the above example, we have just changed the name of variable “int” to “productType”.


1 Answers

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.

like image 169
Stephan Avatar answered Sep 20 '22 11:09

Stephan