的解决方法? sqlite3.Cursor 个实例

Workaround for the ? of sqlite3.Cursor instance

我有一个包含 16 列的 table,我想替换 executemany 方法的语法,即:

# DATABASE is of type sqlite3.Cursor 
# data is of type List[List]
DATABASE.executemany(
          "INSERT INTO table_name VALUES (?, ?, ?, ?, ?, ?, ?, ?, ?, ?, ?, ?, ?, ?, ?, ?)", data
                      )
DATABASE_CONNECTION.commit()

更紧凑的东西。我不想重复问号 16 次。有解决办法吗?

您可以像这样构造 sql 语句:

sql = "INSERT INTO table_name VALUES (" + ("?," * len(data)).strip(",") + ")"

这样您就可以 "?," 重复 data 中的项目数并使用它:

DATABASE.executemany(sql, data)