You need to enable JavaScript to run this app.
优惠活动
大模型
产品
解决方案
定价
更多

Python Postgres调用fetchone()报错:'int' object does not support indexing

问题解决:'int' object does not support indexing 错误

你的问题出在cur.execute()的参数传递上:在Python中,(0)只是一个整数,不是元组,而psycopg2要求execute的第二个参数必须是序列(元组、列表等)。当你传入单个整数时,psycopg2的执行逻辑会出现异常,导致fetchone()返回的不是预期的行元组,而是单个整数值,因此无法使用索引[0]。

修正步骤:

  • 将execute的参数从(0)改为(0,)(单个元素的元组必须加逗号),或者用列表[0]。

修正后的代码:

conn = psycopg2.connect(
    host=postgres_host,
    database=postgres_database,
    user=postgres_user,
    password=postgres_password)
    
cur = conn.cursor()
# 修正参数为单个元素的元组
cur.execute("SELECT * FROM videos WHERE status = %s", (0,))
result = cur.fetchone()
# 先判断结果是否为空,避免空值报错
if result:
    print(result[0])
# 执行退出操作需加括号
exit()

额外提示:

  • 如果仅需查询单个字段(比如仅获取ID),可以将SQL改为SELECT id FROM videos WHERE status = %s,此时fetchone()返回(id值,)形式的元组,依然可用result[0]取值;也可以用cur.fetchval()直接获取单个字段值。
  • 操作完成后建议关闭游标与连接,避免资源泄漏,可在末尾添加cur.close()和conn.close()。

内容的提问来源于stack exchange,提问作者JJ The Second

相关产品推荐
方舟 Agent Plan

超全模态模型 × Harness 升级,最新支持 Deepseek-V4.1-Flash、GLM-5.3 系列、Doubao-Seedream-5.0-pro、Kimi-K3 (部分), 限时 9.9 元起

最近更新时间:2026.08.17 23:50:34