如何从列表中创建sqlite3表列? (在python中)

时间:2016-10-18 22:36:28

标签: python sqlite

我正在尝试根据用户请求构建表列(列表的大小可能会更改,这就是我无法确定问号的确切数量的原因):

userInput=[a,b,c,d,e,f,g]
ct.execute('CREATE TABLE IF NOT EXISTS chars(?)',(userInput))

我收到以下错误:

sqlite3.OperationalError: near "?": syntax error

1 个答案:

答案 0 :(得分:1)

要回答您的问题,我们会忽略安全问题。我假设您要根据您的python列表创建(无类型)列。

CREATE TABLE chars (a,b,c,d,e,f,g)

以下是我的建议:

userInput=['a','b','c','d','e','f','g']
q = "CREATE TABLE IF NOT EXISTS chars(%s)" % ", ".join(userInput)

(请注意,必须根据字符串文字的Python语法引用列名。)

可能有人认为%s作为一种语法是“不再强调”,但在我看来,这种情况很简洁。