2015-03-12 2 views
0

Я пытаюсь использовать SQL для того, чтобы сделать таблицу в настоящее время я создал этотвозникает ошибка при использовании модуля sqlite3

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

пожалуйста это сделать: с = conn.cursor() – Oni1

ответ

2

Вы должны заменить

c = conn.cursor 

с

c = conn.cursor() 

для того, чтобы сделать запросы с объектом курсора. Все, что c = conn.cursor позволяет вам создавать базу данных. Если вы смущены различием между обычным курсором db и используемым для запросов, this answer(и вопрос) может помочь вам сделать различие.

Edit:
Для вашей второй задачи у вас есть круглые скобки вопрос, а execute линия должна быть приложена надлежащим образом, как это:

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

После фиксации этого я теперь получить новую ошибку, как показано выше –

+1

@BradleyRidgway Тогда вместо редактирования вопрос для новой ошибки (* обычно известный как быть «Помогите вампиру» *), вероятно, было бы в ваших интересах поддерживать текущую целостность вашего вопроса, исследовать вашу новую проблему, и если вы полностью неспособны ее решить ***, то *** отправляйте еще один новый вопрос. – HavelTheGreat

+0

Я не вижу ничего плохого в том, чтобы быть «Помощником вампиров», если это в конечном итоге цель сайта. –

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)) 
Смежные вопросы