将.db文件读入Python

2024-06-02 05:02:46 发布

您现在位置:Python中文网/ 问答频道 /正文

我阅读了sqlite3模块(https://docs.python.org/2/library/sqlite3.html)的基础知识,它允许您连接到数据库中的一个.db文件,然后您可以执行普通的SQL命令,但我想知道是否可以将.db文件读入一个列表、数组甚至字典列表。从本质上讲,我试图做与unicodecsv或csv模块相同的事情,但是使用.db文件。

如果你想知道我为什么要这样做:我要转换数据,这样我就更容易使用数组来同时计算整个列。如果你需要任何澄清,请告诉我。


Tags: 模块文件httpsorg命令数据库docs列表
2条回答

您需要遍历所有表并转换为list。这是完全未经测试的代码,但应能让您了解需要执行的操作:

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],)))

波波茨, 对于将db文件作为列表(不使用sql命令)读取是什么意思,我有点困惑。我相信这个文件是一个二进制文件,详细的格式是here。所以如果你真的想,你可以创建一个解析器来读取它,但是强烈建议不要这样做。

如果您读取sqlite3文件的全部内容,然后将所有信息加载到列表列表中,那么您将所有这些信息存储在内存中,即使您有足够的内存,也不是最好的使用方法,尤其是在数据量很大的情况下。

其次,从sqlite3模块获取光标后,可以使用selection参数一次填充一个列表、块的列表,以筛选一次可以工作的列,这可能值得花时间,而不是试图分析sqlite3文件。

很抱歉,如果我误读了你想做的,至少是它的范围,但我认为链接可能有助于你分析数据。我自己没有试过。

相关问题 更多 >