使用python数据集模块检查许多sqlite数据库

时间:2014-10-07 07:36:59

标签: python dataset

最近我使用python模块dataset来操作和存储信息。结果,我有一个sqlite数据库的集合,比如说file1.db,file2.db等等。而且,每个数据库都包含相同的表。

使用数据集,我可以使用代码轻松连接和检查数据库:

>>> db1 = dataset.connect('sqlite:////path/file1.db')
>>> table1 = db1[u'tweet']

假设我想在许多文件中保留数据库,那么用数据集检查所有数据库的首选方法是什么?

我正在寻找更好的东西:

>>> db1 = dataset.connect('sqlite:////path/file1.db')
>>> db2 = dataset.connect('sqlite:////path/file2.db')
>>> tables = [db1[u'tweet'],db2[u'tweet']]
>>> for table in tables:
        for tweet in table:
            print(tweet['text'])

1 个答案:

答案 0 :(得分:0)

我不知道一个干净的解决方案,但在这种情况下使用内存中的SQLite数据库可能会很有趣:

mem_db = dataset.connect('sqlite:///')
databases = ['sqlite:////path/file1.db']

for uri in databases:
    db1 = dataset.connect(uri)
    for row in db1['table']:
        mem_db.insert(row)

我相信还有一个insert_many调用,对于批量传输来说可能更快。