Python 使用函数获取列名Sqlite3

Python 使用函数获取列名Sqlite3,python,python-2.7,sqlite,Python,Python 2.7,Sqlite,我有一个简短的问题要问我的一个班级;它涉及在python中构建一个函数,该函数以sqlite数据库名和表名作为参数,并返回该表中的列名 到目前为止,我已经做了以下工作: #!/user/bin/env python import sqlite3 import pprint pp = pprint.PrettyPrinter() def print_table_columns(database_name, table_name): conn = sqlite3.connect(data

我有一个简短的问题要问我的一个班级;它涉及在python中构建一个函数,该函数以sqlite数据库名和表名作为参数,并返回该表中的列名

到目前为止,我已经做了以下工作:

#!/user/bin/env python

import sqlite3
import pprint
pp = pprint.PrettyPrinter()

def print_table_columns(database_name, table_name):
    conn = sqlite3.connect(database_name)
    c = conn.cursor()
    c.execute('SELECT sql FROM sqlite_master WHERE type=\'table\' AND name=\'table_name\'')
    print c.fetchall()
    conn.close()
遗憾的是,这段代码生成了一个空列表。我怀疑execute函数中的SQL命令没有使用Python中定义的变量,但我不确定。在此方面的任何帮助都将不胜感激。

当然,您需要参数化查询:

其中,
是一个占位符,
sqlite3
将填充查询参数(
table\u name
此处)。

当然,您需要参数化查询:

其中,
是一个占位符,
sqlite3
将用查询参数填充(
table\u name

c.execute("""
    SELECT 
        sql 
    FROM 
        sqlite_master 
    WHERE 
        type = 'table' AND 
        name = ?""", (table_name, ))