2012-04-16 54 views
1

現在我正在嘗試使用python for sqlite3。我的問題是,我不知道如何用python讀取已存在的'abc.db'。 我的意思是我只知道abc.db是一個sqlite3文件。但我不知道它的結構,我也需要從這個abc.db獲取信息。python與sqlite3

我用:

import sqlite3 
try: 
     sqlite_conn = sqlite3.connect('abc') 
except sqlite3.Error, e: 
     print 'conntect sqlite database failed.' 
     sqlite_logger.error("conntect sqlite database failed, ret = %s" % e.args[0]) 

那麼,怎麼做?我需要閱讀abc,如果可能,我想直接在終端上輸出內容。可能嗎?因爲我需要分析這個文件中的數據。非常感謝!!!!

+0

可能的重複[如何列出SQLite數據庫文件中的表](http://stackoverflow.com/questions/82875/how-do-i-list-the-tables-in-a-sqlite-數據庫文件) – agf 2012-04-16 23:09:20

+0

RE:「將內容直接輸出到終端」:sqlite3有一個「.dump」命令,您可以使用它命令它將SQL重新創建數據庫的當前狀態。這本質上是一種備份機制,但可以讓您以痛苦的細節查看數據庫中的內容。您可以使用python連接將「.dump」傳遞給數據庫 - 您不一定需要使用命令行sqlite3二進制文件。 – 2013-08-23 20:51:55

回答

4

在你sqlite_conn對象,您可以運行下面的命令

cur = sqlite_conn.cursor() 

cur.execute("SELECT name FROM sqlite_master WHERE type='table'") 

    rows = cur.fetchall() 

    for row in rows: 
     print row[0] 

那麼你可以做的每個這些表的SELECT * from <Tablename>。 sqlite_master是一個sqlite元數據。

0

使用命令行sqlite3的客戶端,你可以看到一個未知的模式DB使用:

.schema 

然後閒逛與SQL一點得到中的數據的一個更好的主意。