当前位置: 首页 > 面试题库 >

TypeError:“ int”对象不支持索引

章禄
2023-03-14
问题内容

我有这个查询:

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,)它具有不变性的优点。



 类似资料:
  • 问题内容: 当我运行该函数时,它会引发以下错误,这是为什么呢? 问题答案: 显然,您正在传递给函数。可能是用python2.x编写的(返回列表时)。使用python3.x时,返回一个行为更像a而不是a的对象。因此,无法对其进行索引。 解决方案是将(或简单地)传递给。

  • 问题内容: 这是我的代码: 使用python 2.7.3时,这完全可以正常工作;但是,当我使用python 3.2.3时,出现错误提示。如何修改代码使其与3.2.3兼容? 问题答案: 在Python3中,(以及和一起)返回,而不是列表。请参阅此处的文档。因此,您需要将呼叫包装到一个呼叫中,例如:

  • 问题内容: 我正在查看一些代码,并尝试将其翻译为,但是我仍然停留在本节中。任何人都可以澄清出什么问题吗? 这是给出的错误: 问题答案: 在Python 3中,返回一个惰性序列对象-它不返回列表。无法重新排列范围对象中的元素,因此不能重新排列它。 改组之前将其转换为列表。

  • 问题内容: 给定以下整数和计算 结果是: 如何将输出舍入为整数? 问题答案: 给定以下整数和计算 结果是: 如何将输出舍入为整数?

  • 问题内容: 我正在学习python并从事练习。其中之一是对投票系统进行编码,以便使用列表在比赛的23名球员中选择最佳球员。 我正在使用。 我的代码: 我懂了 TypeError:“ str”和“ int”的实例之间不支持“ <=” 但是我这里没有任何字符串,所有变量都是整数。 问题答案: 更改 至 您将从控制台以字符串形式获取输入,因此必须将输入字符串转换为对象才能进行数字运算。

  • 问题内容: 我尝试运行以下代码: 但是我在最后一行出现错误: 似乎我无法分配张量,如何解决? 问题答案: 通常,TensorFlow张量对象不可分配*,因此您不能在分配的左侧使用它。 做您想做的事情的最简单方法是构建张量的Python列表,并在循环结束时将它们在一起: *除对象外,使用etc.方法。但是,可能返回不支持此方法的对象。