我试图通过循环创建几个表。为此,我需要一个表名,该名称在创建每个表时会发生变化。我试图通过一个列表在表名上添加一个字符来做到这一点。
然后我尝试在执行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()
您能否发现我的代码中的任何问题。
答案 0 :(得分:0)
您想要formI
,formII
,formIII
作为表名吗?
我建议:
nameGroup = 'form' + 'I' * currentTable
现在不要求那些是标准化的罗马数字。