2
単にpythonとsqliteを使ってデータベースにテーブルを作成します。しかし、私は自分のdb名がユーザによって与えられる必要があります。 sqlite3、python、CREATE TABLE - "/"の近くに構文エラーがあります
#!/usr/bin/env python
# -*- coding: utf-8 -*-
import sqlite3 as sqlite
import sys, os
sys.path.append(os.path.join(os.path.dirname(__file__), '..'))
def create_table(dbname):
sql = '''\
CREATE TABLE IF NOT EXISTS ''' + dbname + ''' (
ID INTEGER PRIMARY KEY NOT NULL,
FIRSTNAME TEXT,
LASTNAME TEXT,
ACADEMIC_DEGREE TEXT,
DISCIPLINE TEXT
'''
connection = sqlite.connect(dbname, check_same_thread=False)
try:
with connection:
cursor = connection.cursor()
try:
cursor.execute(sql)
except sqlite.DatabaseError, dbe:
print dbe
finally:
connection.close()
tmp = os.path.split(os.path.dirname(os.path.abspath(__file__)))
path = os.path.join(tmp[0], 'researchers.sql')
create_table(path)
は、しかし、私のコードは、テーブルを作成しませんが、私だけのエラーメッセージを表示します。:私はこれを行うために管理
near "/": syntax error
が。このコードで何が問題になっていますか? Pythonの構文エラーはどこで言及されていますか?これを解決する方法は?
このコードでは、働いていた:は
#!/usr/bin/env python
# -*- coding: utf-8 -*-
import sqlite3 as sqlite
import sys, os
sys.path.append(os.path.join(os.path.dirname(__file__), '..'))
def create_table(dbname):
sql = '''
CREATE TABLE IF NOT EXISTS ''' + str(dbname.split('.')[0]) + ''' (
ID INTEGER PRIMARY KEY NOT NULL,
FIRSTNAME TEXT,
LASTNAME TEXT,
ACADEMIC_DEGREE TEXT,
DISCIPLINE TEXT
)
'''
connection = sqlite.connect(dbname, check_same_thread=False)
try:
with connection:
cursor = connection.cursor()
try:
cursor.execute(sql)
except sqlite.DatabaseError, dbe:
print dbe
finally:
connection.close()
create_table('researchers.sql')
あなたの 'CREATE TABLE'文が閉じているようには見えませんが、エラーは' '' ''内の最初の文字から来ています。 –