我有这个查询:
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/