Warning: file_get_contents(/data/phpspider/zhask/data//catemap/9/loops/2.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
从python将值列表插入SQLite列_Python_Sql_Python 3.x_Sqlite - Fatal编程技术网

从python将值列表插入SQLite列

从python将值列表插入SQLite列,python,sql,python-3.x,sqlite,Python,Sql,Python 3.x,Sqlite,假设我有以下值的列表: listA = [1,2,3,4,5,6,7,8,9,10] 我希望使用executemany命令将此列表的每个值放在SQLite数据库中名为formatteddate的列中,而不是遍历整个列表并分别插入每个值 如果要插入多个数据列,我知道如何执行此操作。例如,如果我必须插入listA、listB、listC,那么我可以创建一个元组,如(listA[I]、listB[I]、listC[I])。是否可以在没有循环的情况下插入一个值列表。还假设插入值是整数 更新: 根据提供

假设我有以下值的列表:

listA = [1,2,3,4,5,6,7,8,9,10]
我希望使用executemany命令将此列表的每个值放在SQLite数据库中名为
formatteddate
的列中,而不是遍历整个列表并分别插入每个值

如果要插入多个数据列,我知道如何执行此操作。例如,如果我必须插入listA、listB、listC,那么我可以创建一个元组,如
(listA[I]、listB[I]、listC[I])
。是否可以在没有循环的情况下插入一个值列表。还假设插入值是整数

更新: 根据提供的答案,我尝试了以下代码:

def excutemanySQLCodewithTask(sqlcommand,task,databasefilename):
#创建数据库连接
conn=创建连接(数据库文件名)
康涅狄格州:
cur=连接光标()
cur.executemany(sqlcommand,[(i,)表示任务中的i])
返回当前lastrowid
tempStorage=[19750328、19750330、19750401、19750402、19750404、19750406、19751024、19751025、19751028、19751030]
excutemanySQLCodewithTask(““”更新myTable集formatteddate=(?);”,tempStorage,databasefilename)

这仍然需要很长时间(大约10个小时)。我有150000件物品在仓库里。我试着插入,但也很慢。似乎不可能列出整数的元组

正如您所说,您需要一个元组列表。因此,您可以:

cursor.executemany("INSERT INTO my_table VALUES (?)", [(a,) for a in listA])

您是否有任何代码显示您尝试过此操作?@EcSync用代码更新了它。请澄清您想做什么。是否要为每个值插入新行?如果是,表中是否只有一列名为“values”?如果还有其他列,它们是否接受null?还是要用这些新值更新现有行?如果是这样,则需要一个主键值与每个值配对以正确更新。另外,您在解释中指定了一个名为
values
的列,但您的代码显示了一个名为
formatteddate
的列。总之,不清楚您打算做什么。虽然这不是解决总体问题的答案,但请注意,在没有WHERE子句限制行的情况下运行UPDATE命令将更新表中的所有行。您的代码本质上是用一个值更新所有表行,然后用另一个值替换所有formatteddate列,然后反复大约150000次。。。最后,所有行都有相同的值,即列表中的最后一个值。(列表中的所有其他值都被覆盖。)@CPerkins我在Python中有一个包含整数的列表(它们是格式化日期)。我已经有了一个包含多个列的表,所有行中都有一些值。我在表中添加了一个名为
formatteddate
的新列。此新列具有空值。我想将列表中的值放入名为
formatteddate
的新列中。感谢您指出上述代码中的一些错误,但已经修复。我只是忘了把它修好。首先,让我问你:插入或更新哪个更好?我假定为INSERT,因为该列中没有现有值。(续)谢谢你的帮助。我试过你的方法,但还是太慢了。它似乎是一次插入一个值。它是一次插入一个值。executemany()为单个SQL参数
分别传递的每个值重新运行相同的SQL语句。