2016-05-26 5 views

答えて

0

役立ちます何かをfoubdませんでした:

import sqlite3 
con = sqlite3.connect(':memory:') 

することができ:memory:を使用するさまざまな方法についていくつかの情報hereが見つかり、Python固有のドキュメントはhereです。

あなたが言った文字列には、正確には何が入っていますか? SQLiteコマンドのバッファーの場合は、con.execute(buffer)を使用できます。そうでない場合は、カーソルを取得してテーブルを作成し、手動でデータを挿入する必要があります。ここでは、PythonのAPIドキュメントからの例です:

c = con.cursor() 

# Create table 
c.execute('''CREATE TABLE stocks 
      (date text, trans text, symbol text, qty real, price real)''') 

# Insert a row of data 
c.execute("INSERT INTO stocks VALUES ('2006-01-05','BUY','RHAT',100,35.14)") 

# Save (commit) the changes 
con.commit() 

# We can also close the connection if we are done with it. 
# Just be sure any changes have been committed or they will be lost. 
con.close() 

ファイルにインメモリデータベースを書きたい場合は、あなたがSQLite's Online Backup API(Pythonラッパーhere)を使用することができます。しかし、ファイルとしてデータベースに即座にアクセスしたいが、それでもメモリに入れたいのであれば、RAM diskを使用する必要があると思います(私があなたが求めていたかどうかは分かりませんが、 )。

これが役に立ちます。

+0

この方法ではDBが空ですが、私はそのメモリファイルに文字列の内容を書き込む必要があります。 – NI6

+0

バッファにテーブルの作成などのコマンドがある場合、 'con.execute(buffer)'を使用できるはずです。そうでなければ、テーブルを作成して文字列から各データ項目を追加する必要があります。 Python APIドキュメントの一番上に例があります。 –

+0

以前に作成したsqliteデータベースを持っていて、それをメモリにロードしたいのであれば、これは役に立ちます:http://stackoverflow.com/questions/3850022/how-to-load-existing-db-file-to-memory -in-python-sqlite3 –

0

最初のものは、その行が文字列であるとで区切ら3つのエントリを持っていると仮定すると、データベースにTABLE1する次に、あなたの文字列を挿入するデータベース

import sqlite3 
con = sqlite3.connect("memory.db") 
cur = con.cursor() 
cur.execute("CREATE TABLE table1 (A TEXT, B REAL, C TEXT);") 

でTABLE1を作成する必要があります「;」

cur.executemany('INSERT INTO table1 VALUES (?,?,?)',(line,)) 

#to finish 
con.commit() 
con.close() 
関連する問題