我阅读了sqlite3模块(https://docs.python.org/2/library/sqlite3.html)的基础知识,它允许您连接到数据库中的.db文件,然后您可以执行正常的SQL命令,但我想知道是否可以读取将.db
文件放入列表,数组甚至字典列表中。从本质上讲,我正在尝试使用unicodecsv或csv模块执行与.db文件相同的操作。
如果你想知道我为什么要这样做:我将改变数据,我会更容易使用数组一次计算整个列。如果您需要任何澄清,请告诉我。
答案 0 :(得分:2)
您将需要遍历所有表并转换为列表。这是完全未经测试的代码,但应该让您知道您需要做什么:
import sqlite3
def importdb(db):
conn = sqlite3.connect(db)
c = conn.cursor()
c.execute("SELECT name FROM sqlite_master WHERE type='table';")
for table in c.fetchall()
yield list(c.execute('SELECT * from ?;', (table[0],)))
答案 1 :(得分:0)
Breakbotz, 通过将db文件作为列表列表读取(不使用sql命令),我对你的意思有点困惑。我认为该文件是一个二进制文件,其中包含格式为here的详细信息。因此,如果你真的想要,你可以创建一个解析器来阅读它,但强烈建议不要这样做。
如果您阅读了sqlite3文件的全部内容,然后将所有这些信息加载到列表列表中,那么您将所有这些信息存储在内存中,即使您有足够的内存,也不是最好的使用它,特别是如果数据很大的话。
其次,一旦从sqlite3模块获得光标,就可以使用选择参数一次填充一个列表,一个块的列表来过滤您可以在某个时间工作的列,这可能是值得花时间而不是试图解析sqlite3文件。
如果我误读了你要做的事情,至少它的范围,我很抱歉,但我认为这个链接可以帮助你解析数据。我自己没试过。