pythonsqlite3如何只提取特定的表

2024-04-20 12:36:12 发布

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

我有一个sqlite数据库,我想从中提取特定的表。 数据库有数千个表名。 我只对以“联系人”开头的表格感兴趣 然而,有许多是接触式的,只要你能说出它的名字就可以了。在

然后我需要从每个“contact”表中提取行数据,并创建一个CSV或电子表格类型的文档。总共有1600个左右有独特的名字。在

我最初以为我可以用sqlite查询来实现这一点,但不能。 然后,我试图编写一个小脚本来实现这一点,但是我不知道如何为光标.执行只从我感兴趣的表格中获取数据。在

有什么想法吗?在

更新**

import sqlite3

fname = raw_input("Enter your filename: ")
con = sqlite3.connect(fname)
cursor = con.cursor()
cursor.execute("SELECT name FROM sqlite_master WHERE type='table'")
mydata = cursor.fetchall()
for lines in mydata:
    print lines

我已经把桌子列出来了。我还需要在“联系人”的位置添加一个条件。当我添加它时,我的打印只得到[]。我想我把事情搞砸了。在

****更新2*** 感谢@Olver W.belower让我走上正轨。在

^{pr2}$

在某些情况下,我将把它输出到电子表格或另一个SQLite数据库,但在我的测试数据库中,它选择了适当的标准并正确地输出了行。我可以也会把它浓缩一点,使它更干净,但它确实起了作用。谢谢


Tags: 数据数据库sqlitecontact联系人名字confname
1条回答
网友
1楼 · 发布于 2024-04-20 12:36:12

如注释中所述,您可以先查询所有表名,然后检查是否满足名称条件,这可以在Python中完成:

for tablename in cur.execute('SELECT name FROM sqlite_master WHERE type="table";'):
    if tablename[0].startswith('conn_'):
        execute_some_query_using_this_table()

相关问题 更多 >