我正在尝试根据用户请求构建表列(列表的大小可能会更改,这就是我无法确定问号的确切数量的原因):
userInput=[a,b,c,d,e,f,g]
ct.execute('CREATE TABLE IF NOT EXISTS chars(?)',(userInput))
我收到以下错误:
sqlite3.OperationalError: near "?": syntax error
答案 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作为一种语法是“不再强调”,但在我看来,这种情况很简洁。