将列表中的值插入表格(Python,sqlite3)

时间:2018-03-01 16:25:34

标签: python list sqlite

我有这个简单的代码,我无法工作。

import sqlite3

conn = sqlite3.connect('db\\books')
c = conn.cursor()

col = []

title = input('title')
text = input('text')
tags = input('tags')

col.append(title)
col.append(text)
col.append(tags)

c.executescript("INSERT INTO books (title,text,tags) "
                "VALUES (col[0],col[1],col[2])")

db代码(连接和普通插入)可以工作,但是当我想要你做你上面看到的事情时问题就会出现。

我想要实现的目标是让用户将数据插入db(所有字符串)。我不知道这是否是正确的方法......

我该怎么做?

由于

2 个答案:

答案 0 :(得分:2)

这一行:

c.executescript("INSERT INTO books (title,text,tags) "
                "VALUES (col[0],col[1],col[2])")

不是有效的SQL。现在,由于c被定义为游标,您可以直接从execute而不是executescript运行c.execute("INSERT INTO books (title,text,tags) " "VALUES (?,?,?)", col) ,后者假设从连接创建游标并执行SQL。只需用以下代码替换该行即可:

{{1}}

上面的SQL使用" qmark样式"占位符,从其后面的参数列表中获取实际值。

答案 1 :(得分:2)

一种选择是将您的最后一行更改为:

c.execute("INSERT INTO books (title,text,tags) VALUES (?,?,?)", (col[0], col[1], col[2]))

然后在完成更改后提交并关闭连接:

conn.commit()
conn.close()