我正在尝试使用SQL来创建一个目前我已创建此表的表
import sqlite3
conn = sqlite3.connect("Classes.db")
c = conn.cursor()
score = 5
name = ("Brad")
Class = 2
def tableCreate():
c.execute("CREATE TABLE Class{}(ID INT, Name TEXT, Score (Out of 10) INT").format(Class)
def dataEntry():
c.execute("INSERT INTO Class{} (Name, Score) VALUES (?,?)",
(score,name)).format(Class)
conn.commit()
当我运行tableCreate函数时,它返回错误:
Traceback (most recent call last):
File "<pyshell#0>", line 1, in <module>
tableCreate()
c.execute("CREATE TABLE Class{}(ID INT, Name TEXT, Score (Out of 10)INT").format(Class)
sqlite3.OperationalError: unrecognized token: "{"
感谢您解决此错误的任何帮助
答案 0 :(得分:2)
你应该替换
c = conn.cursor
带
c = conn.cursor()
以便使用游标对象进行查询。
c = conn.cursor
允许您执行的所有操作都是创建数据库。如果您对常规数据库游标与用于查询的游标之间的差异感到困惑,this answer (和问题)可能会帮助您做出区分。
编辑:
对于您的第二个问题,您有一个括号问题,execute
行应该正确封闭,如下所示:
c.execute("CREATE TABLE Class{}(ID INT, Name TEXT, Score (Out of 10) INT".format(Class))
答案 1 :(得分:0)
format
方法是字符串对象的一种方法,即你把括号括号放得太早:
c.execute("CREATE TABLE Class{}(ID INT, Name TEXT, Score (Out of 10) INT").format(Class)
应该阅读
c.execute("CREATE TABLE Class{}(ID INT, Name TEXT, Score (Out of 10) INT".format(Class))