2012-04-16 5 views
1

今のところ私はsqlite3のためにpythonを使用しようとしています。私の質問は、私はPythonで存在する 'abc.db'を読む方法を知らないということです。 私は、abc.dbがsqlite3ファイルであることを知っています。しかし、私はそれの構造を知らないし、また、このabc.dbから情報を取得する必要があります。python with 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を読む必要があり、可能であれば、端末に直接コンテンツを出力したいのです。出来ますか?私はこのファイルのデータを分析する必要があるからです。どうもありがとう!!!!コマンドラインsqlite3のクライアントを使用して

+0

[SQLiteデータベースファイルにテーブルをリストするにはどうすればいいですか](http://stackoverflow.com/questions/82875/how-do-i-list-the-tables-in-a-sqlite- – agf

+0

RE: "コンテンツを端末に直接出力する":sqlite3には、データベースの現在の状態を再現するSQLを吐き出すための ".dump"コマンドがあります。これは本質的にバックアップの仕組みですが、データベース内の内容を痛いほど詳細に見ることができます。 Python接続でデータベースに ".dump"を渡すことができます。必ずしもコマンドラインsqlite3バイナリを使う必要はありません。 –

答えて

4

。 sqlite_masterはsqliteメタデータです。

0

、あなたが使用してdbが、未知のスキーマを見ることができます:その後、

.schema 

内のデータのより良いアイデアを得るためにSQLで少し周りを突きます。

あなたは、あなたがそれらのテーブルごとに SELECT * from <Tablename>を行うことができ、次のコマンド

cur = sqlite_conn.cursor() 

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

    rows = cur.fetchall() 

    for row in rows: 
     print row[0] 

を実行することができ、あなたのsqlite_connオブジェクトで