在python中选择值中的列

在python中选择值中的列,python,sql,Python,Sql,我有如下代码: sql_command='''SELECT Grade From GRADES where Student_Number='''+str(id) +''' AND Course_ID IN'''+(list) grades=execute_sql(sql_command,sql_cursor) 其中,列表是包含课程id列中满足条件(特定课程id)的元素的列表 我想说的是,选择课程id列是我列表中课程id的唯一等级。 如何操作?您希望将列表中的所有元素合并为一个字符串

我有如下代码:

   sql_command='''SELECT Grade From GRADES where Student_Number='''+str(id) +''' AND Course_ID IN'''+(list)
   grades=execute_sql(sql_command,sql_cursor)
其中,列表是包含课程id列中满足条件(特定课程id)的元素的列表

我想说的是,选择课程id列是我列表中课程id的唯一等级。 如何操作?

您希望将列表中的所有元素合并为一个字符串,例如:

sql_command ='''SELECT Grade From GRADES where Student_Number='''+str(id) 
sql_command+=''' AND Course_ID IN ('''+ ','.join(list) + ''')'''
有几件事:

  • 假设ID来自用户的输入,该脚本将容易受到SQL注入攻击。有关使用更安全的参数的示例,请参见
  • 您的具体问题的解决方案包括内爆您的列表:

    格式字符串=','。连接(['%s']*len(列表))


来源:

以下是如何使用sqlite3完成的

cursor.execute(
    "SELECT Grade From GRADES where Student_Number= ? AND Course_ID IN (?)",
    (id, ','.join(map(str, list)))
)

请不要使用%s,因为不推荐使用它。查看更多信息。

列表包含元组,而不是str。。。。“是做同样的事还是做同样的事?”埃里克·布沃斯从这个问题上我不清楚。假设其中一个元组值包含您感兴趣的课程id,您可以使用列表包含元组(而不是str)的答案创建一个仅包含这些值的新列表,这与编写相同吗?@Stephan