如何获取执行查询的表名? (python / sqlite)

时间:2014-04-09 23:47:00

标签: python python-2.7 sqlite

我正在运行一个简单的查询并将结果转换为json。我想动态地这样做,所以我可以使用一个函数来处理所有查询。

query = "INSERT INTO Tests (name, start, end) VALUES (?, ?, ?)"
params = (name, start, end)  
conn = sqlite3.connect('settings.db')
cur = conn.cursor()
cur.execute(query, params)
conn.commit()
rows = cur.fetchall()

我通过使用cursor.description获取列名,但我还需要表名来实现json结构,如下所示:

{ status: 'success', tests: [ name: 'sample', 'start': '8484', 'end': '9054' ], [ name: 'sample2', 'start': '84842', 'end': '90542' ] }

有没有合理的方法来实现这个目标?

1 个答案:

答案 0 :(得分:2)

以下是从数据库连接获取表名的方法。 我希望它对你有用。

cur.execute('''select * from sqlite_master''')
l = cur.fetchall()
#we will populate a list with the names of your tables
tbl_name_list = []
for sql_type, sql_name, tbl_name, rootpage, sql in l:
    if sql_type == 'table':
        tbl_name_list.append(sql_name)
#your list of table names is constructed
print(tbl_name_list)

了解更多信息: https://sqlite.org/faq.html#q7