【问题标题】:pyodbc.ProgrammingError: ('The SQL contains 1 parameter markers, but 7 parameters were supplied', 'HY000') [closed]pyodbc.ProgrammingError:('SQL 包含 1 个参数标记,但提供了 7 个参数','HY000')[关闭]
【发布时间】:2020-03-04 04:18:41
【问题描述】:

运行以下脚本时,它以以下错误结束,因为我确实找到了有关此错误的其他帖子,但我没有找到与我的脚本类似的修复程序。

language = ['Chinese (Simplified)', 'Chinese (Traditional)', 'English', 'French', 'Indonesian', 'Japanese', 'Korean']

cursor.execute("SELECT * from TABLE_NAME WHERE Language=?", language)
data = cursor.fetchall()

我得到的错误:

pyodbc.ProgrammingError: ('The SQL contains 1 parameter markers, but 7 parameters were supplied', 'HY000')

【问题讨论】:

  • 有道理。您将多个参数发送到一个占位符 qmark。
  • 一个占位符和七个值应该做什么?!

标签: python sql pyodbc


【解决方案1】:

inside language 有 7 项,但你只有 1 项?在 cursor.execute() 里面 你可以试试 lan=','.join([str(elem) for elem in language])

cursor.execute("SELECT * from TABLE_NAME WHERE Language in ?", lan)

【讨论】:

  • - 感谢您的回答,但仍然面临同样的错误。
  • ' '.join([str(elem) for elem in language]) 此行使列表变为字符串,用 , 分隔每个项目
猜你喜欢
  • 2018-10-17
  • 2017-09-15
  • 1970-01-01
  • 1970-01-01
  • 1970-01-01
  • 2012-03-25
  • 2018-03-23
  • 1970-01-01
  • 1970-01-01
相关资源
最近更新 更多