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

如何在Pandas中带参数执行SQL查询?解决read_sql_query报错问题

问题修复方案

你的报错原因是**read_sql_query的参数顺序传递错误**:该函数的第二个参数需要传入数据库连接对象,第三个参数才是查询参数列表,你把参数和连接对象的位置搞反了,导致程序把参数列表当成连接对象去调用cursor方法,自然会报"'list' object has no attribute 'cursor'"。

修正后的代码如下:

import pandas.io.sql as sqlio

def getAnalysisMetaStatsDF(self):
    session = self.connection()
    ids = self.getAnalysisIds() # 整数列表
    # 调整参数顺序:连接对象放第二个位置,参数作为第三个参数传入
    data = sqlio.read_sql_query(
        "Select * from analysis_stats where analysis_id in %s",
        session,
        params=[tuple(ids)]
    )
    print(data)

补充两点注意事项:

  • 确保self.connection()返回的是有效的psycopg2连接对象,和之前checkAnalysisStartDate方法中使用的一致
  • 如果ids列表为空,需要提前判断处理,避免生成()这样的空元组导致SQL语法错误

内容的提问来源于stack exchange,提问作者JD2775

相关产品推荐
方舟 Agent Plan

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

最近更新时间:2026.08.19 09:50:26