将列表插入python3 sqlite3中的一行

时间:2017-05-20 00:10:05

标签: python list python-3.x sqlite

假设我创建了一个sqlite3数据库,我在其中创建了一个表

c.execute("CREATE TABLE tablnam(thing TEXT, thing2 TEXT, thing3 TEXT)")

然后我做了一个清单

list = ["a","b","c"]

我如何将这一个列表插入tablnam只需一行。 我试过了

c.execute("insert into this values(?)",list)

但它返回 Traceback (most recent call last): File "<stdin>", line 1, in <module> ValueError: parameters are of unsupported type

所以要澄清那些不理解的人:我想在python的sqlite3表中的一行中插入一个列表值 谢谢!

1 个答案:

答案 0 :(得分:1)

好伙计,这是行不通的,你试图把列表放在文本所属的地方。尝试这样做:

c.execute("INSERT INTO tablenam(thing, thing2, thing3) VALUES (?, ?, ?)",list[0], list[1], list[2])

与您的建议不同:

  • 我在每个文字字段中添加一个字符串
  • 每行只能插入正好三个列表项。
  • 我已将您的SQL语法更改为包含tablenam,并且还添加了列名称
  • 更改了SQL样式:allcaps中的关键字

请注意,您不能(并且不应该)将整个列表放入数据库中的单行。如果你必须沿着这些方向做一些事情,看一下外键。