2016-06-30 11 views
0

PythonでSQLiteデータベース名を取得する方法はありますか?PythonでSQLiteデータベース名を取得する方法

私は、データベース名を取得するには、次のコードを使用しています:

con=sqlite3.connect(":memory:") 
cursor = con.cursor() 
cursor.execute("PRAGMA database_list;") 
curr_table = cursor.fetchall() 

しかし、私が手出力は次のようになります。私は

[(0,u'main',u'/Users/testdb.db'),       
(2,u'test',u'/Users/testdb.db')] 
+0

何? ...私は質問を理解していない... sqliteは、データベース名としてファイル名(または:メモリ)を持っています...あなたはテーブル名を取得する意味ですか? –

+0

私はこのコードを使用しましたcon = sqlite3.connect( ":memory:") カーソル= con.cursor cursor.execute( "PRAGMA database_list;")しかし、正しいデータベースがリストされていません – anonymous

+0

どういう意味ですか?それは何をリストし、何を期待していますか? ...これは立っているので再現可能な例ではありません... –

答えて

0
のようなものを取得する必要があります

[(0, u'main', u'')] 

実際のファイルに接続する必要があります。そうしないと、データベース内のデータベースを表示できません。

だから、あなたはちょうどこのようにコードを変更する必要があります。

con=sqlite3.connect('/Users/testdb.db') 
cursor = con.cursor() 
cursor.execute("PRAGMA database_list;") 
curr_table = cursor.fetchall() 
+0

しかし、これは私に出力を与えているすべてのデータベースには与えられません:[(0、u'main '、u'/Users/testdb.db ')] – anonymous

+0

@anonymous - あなたが接続しているファイル。 SQLiteはファイルベースのデータベースなので、サーバーにはまったく接続していません。あなたのファイル 'testdb.db'は実際のSQLiteデータベースファイルですか? – Nicarus

+1

データベースが1つだけ表示されている場合は、そのデータベースが1つしかないためです。 – Nicarus

関連する問題