python中有没有办法在字符串中创建内存中的sqlite数据库文件? 我已经尝试过使用sqlite3和tempfile,但没有提供帮助
的东西答案 0 :(得分:0)
我找到了一个创建内存sqlite数据库here的例子:
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(我不确定这是否是您要求的,但我包括它只是以防万一)。
希望这有帮助。
答案 1 :(得分:0)
首先需要在数据库中创建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()