Warning: file_get_contents(/data/phpspider/zhask/data//catemap/2/python/340.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/Django在SQlite中插入多条记录?_Python_Django_Sqlite - Fatal编程技术网

如何使用准备好的语句使用Python/Django在SQlite中插入多条记录?

如何使用准备好的语句使用Python/Django在SQlite中插入多条记录?,python,django,sqlite,Python,Django,Sqlite,如何使用prepared语句使用Python/Django在SQlite中插入多条记录 http://docs.python.org/library/sqlite3.html#cursor-objects Python的SQLite库没有准备好的语句对象,但它们允许您使用参数化查询,并提供多组参数 编辑:请求的executemany示例: values_to_insert = [(1,"foo"), (2, "bar"), (3, "baz")] cursor.executemany("""

如何使用prepared语句使用Python/Django在SQlite中插入多条记录

http://docs.python.org/library/sqlite3.html#cursor-objects
Python的SQLite库没有准备好的语句对象,但它们允许您使用参数化查询,并提供多组参数

编辑:请求的
executemany
示例:

values_to_insert = [(1,"foo"), (2, "bar"), (3, "baz")]

cursor.executemany("""
    INSERT INTO some_table ('item_num', 'item_name')
    VALUES (?, ?)""", values_to_insert)
您可以使用executemany()并传递迭代器对象,例如插入100个整数及其平方:

def my_iter(x):
    for i in range(x):
        yield i, i*i

cursor.executemany("INSERT INTO my_table VALUES (?, ?)", my_iter(100))

如果您试图像PreparedStatement一样只插入一行

cursor.execute("""INSERT INTO table_name ('column1', 'column2') VALUES (?, ?)""", ("value1", "value2"))

也应该有效。值正在作为python元组传递。

@Amber:谢谢您的回答。我遗漏了一个要点,即插入多条记录。。“execute()”只允许执行一个查询。。所以对我不起作用:)@mahendraliya这就是为什么
.executemany()
存在的原因:@Amber:我也读过executemany(),但很抱歉,我对python和sqlite都是新手。我的疑问是,如果我有一个文件名列表,我是通过在列表对象中添加值来准备的,那么我如何将它与ExecuteMay一起使用。。这是否就像简单地将list对象(比如fileList)传递给executemany()?。。任何代码片段都将不胜感激。。谢谢。@mahendraliya-根据请求添加了一个
executemany
用法示例。@Amber:谢谢。。我将尝试一下,并在午餐后在这里发表评论。。如果有效,将接受答案:)OP询问插入多个记录/行,而不是一行,因此我看不出这是如何回答问题的。