我有这个查询:

some_id = 1

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

我收到以下错误:
TypeError: 'int' object does not support indexing

some_id是一个整数,但我想选择具有some_id = 1的指标(或任何我决定放入变量的#)。

最佳答案

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

这会将some_id参数转换为可索引的列表。假设您的方法像我想的那样工作,这应该工作。

发生错误是因为该方法中的某个地方,它可能试图遍历该输入或直接对其进行索引。可能是这样的:some_id[0]
通过使其成为列表(或可迭代的),您就可以像这样将其索引到第一个元素中。

您还可以通过执行以下操作将其变成元组:(some_id,),它具有不可变的优点。

关于python - TypeError : 'int' object does not support indexing,我们在Stack Overflow上找到一个类似的问题:https://stackoverflow.com/questions/18345825/

10-11 15:00