我有一个列表,其中包含我想从数据库中的表中检索的列的名称。 我的问题是如何使光标选择列表中指定的列。在将nameList包含在select语句中之前,是否必须将nameList转换为字符串变量?感谢
nameList = ['A','B','C','D',...]
with sqlite3.connect(db_fileName) as conn:
cursor = conn.cursor()
cursor.execute("""
select * from table
""")
答案 0 :(得分:2)
只要您确定您的输入已被清理 - 以避免SQL injection攻击 - 您可以这样做:
...
qry = "select {} from table;"
qry.format( ','.join(nameList) )
cursor.execute(qry)
如果您使用的是旧版本的Python,请改为:
...
qry = "select %s from table;"
qry % ','.join(nameList)
cursor.execute(qry)
答案 1 :(得分:1)
nameList = ["'A(pct)'",'B','C','D',...]
with sqlite3.connect(db_fileName) as conn:
cursor = conn.cursor()
cursor.execute("""
select {} from table
""".format(", ".join(nameList)))