在python sqlite执行函数中调用变量。

时间:2018-04-17 18:51:07

标签: python list sqlite loops

我试图通过循环创建几个表。为此,我需要一个表名,该名称在创建每个表时会发生变化。我试图通过一个列表在表名上添加一个字符来做到这一点。

然后我尝试在执行sqlite命令时包含变量。

但是我收到了这个错误:

  

sqlite3.OperationalError:靠近“TABLEformI”:语法错误

这是我的代码:

def createFormGroups(dbFileDir, csvFileDir):
    groupNumber = input('Enter the number of groups you want')

    conn = sqlite3.connect(dbFileDir)
    cur = conn.cursor()

    currentTable = 0
    while currentTable != groupNumber:
        currentTable = currentTable + 1

        nameGroupList = ['form']
        nameGroupList.append('I')
        nameGroup = ''.join(nameGroupList)

        createGroupTable = cur.execute('''CREATE TABLE''' + nameGroup + '''(ID integer PRIMARY KEY, Gender text,Postcode text,SEN text,Rank integer,FirstChoice text,SecondChoice text,ThirdChoice text,Avoid1 text,Avoid2 text)''')

        conn.commit()
    conn.close()

您能否发现我的代码中的任何问题。

1 个答案:

答案 0 :(得分:0)

您想要formIformIIformIII作为表名吗?

我建议:

nameGroup = 'form' + 'I' * currentTable

现在不要求那些是标准化的罗马数字。