插入时Python Sqlite问号问题
我正在尝试编写Sqlite Python代码,但遇到了问号问题。我想在插入时Python Sqlite问号问题,python,sqlite,Python,Sqlite,我正在尝试编写Sqlite Python代码,但遇到了问号问题。我想在表\u name229中插入一些列,标题为列。这些行位于行列表中。当我输入(?,?,?,?,?,?,?)而不是{entry}时,它工作正常,但变为手动。因此,我想按如下方式输入这些问号,以使流程自动化,但当然,它会抛出以下错误 c.executemany("""INSERT INTO {tablename} {headers} VALUES {entry}""".format(tablename
表\u name229
中插入一些列,标题为列
。这些行位于行
列表中。当我输入(?,?,?,?,?,?,?)
而不是{entry}
时,它工作正常,但变为手动。因此,我想按如下方式输入这些问号,以使流程自动化,但当然,它会抛出以下错误
c.executemany("""INSERT INTO {tablename} {headers}
VALUES {entry}""".format(tablename='table_name229',headers=tuple(columns),
entry=tuple(['?']*len(columns))),rows)
编程错误:提供的绑定数量不正确。当前语句使用0,提供了7个
你能帮我解决这个问题吗?当字符串元组通过
str.format
方法转换为字符串表示形式时,它会变成一个逗号分隔的单引号字符串列表,括在括号中,这对标题名很有效,但对问号占位符无效,它们不应该被引用,因为它们将被视为纯字符串值
相反,您应该使用str.join
方法自己构建一个逗号分隔的问号列表,并将其括在括号中:
c.executemany('INSERT INTO {tablename} {headers} VALUES ({entry})'.format(
tablename='table_name229', headers=tuple(columns),
entry=','.join(['?'] * len(columns))), rows)
当字符串元组通过
str.format
方法转换为字符串表示形式时,它会变成一个逗号分隔的单引号字符串列表,括在括号中,这恰好适用于标题名,但不适用于问号占位符,它们不应该被引用,因为它们将被视为纯字符串值
相反,您应该使用str.join
方法自己构建一个逗号分隔的问号列表,并将其括在括号中:
c.executemany('INSERT INTO {tablename} {headers} VALUES ({entry})'.format(
tablename='table_name229', headers=tuple(columns),
entry=','.join(['?'] * len(columns))), rows)