我在使用SQLITE3 modu时遇到了一个错误

2024-09-30 22:17:38 发布

您现在位置:Python中文网/ 问答频道 /正文

我正在尝试使用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: "{"

如果能帮我解决这个错误,我将不胜感激


Tags: nameidformatexecutedefcreatetableconn
2条回答

你应该替换

c = conn.cursor

c = conn.cursor()

以便对cursor对象进行查询。 c = conn.cursor所能做的就是创建一个数据库。如果您对常规db游标和用于查询的db游标之间的区别感到困惑,那么this answer(and question)可能会帮助您进行区分

编辑:
对于第二个问题,您有一个括号问题,execute行应该适当地括起来,如下所示:

c.execute("CREATE TABLE Class{}(ID INT, Name TEXT, Score (Out of 10) INT".format(Class))

format方法是string对象的一种方法,也就是说,右括号放得太早了:

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))

相关问题 更多 >