转换SQL列名的python字符串数组

转换SQL列名的python字符串数组,python,sql,arrays,string,quotes,Python,Sql,Arrays,String,Quotes,如何转换python数组,如columns=['column1','column2','column3'] 用于形成SQL语句,如 “从表中选择第1列、第2列和第3列” 我可以在数组上使用join,但不知道如何去掉字符串的引号 >>> 'select ' + ', '.join([c for c in columns]) + ' from table' 'select column1, column2, column3 from table' 这就是你的想法吗 引号不是字符串

如何转换python数组,如
columns=['column1','column2','column3']
用于形成SQL语句,如

“从表中选择第1列、第2列和第3列”

我可以在数组上使用join,但不知道如何去掉字符串的引号

>>> 'select ' + ', '.join([c for c in columns]) + ' from table'
'select column1, column2, column3 from table'

这就是你的想法吗

引号不是字符串的一部分。它们是一个显示辅助。引号不是问题所在。无法参数化列名。您需要将它们格式化。如果这是正面的,您需要对照有效名称列表检查用户输入,以防止SQL注入谢谢@timgeb join工作正常。没有意识到他们只是在展示自己。是的,不知怎的,我相信加入是不够的,但这一点works@user1411335记住,当像这样拼凑sql语句时,字符串可能包含sql注入。最好使用健壮的库。您可以启动。@timgeb,没有库会使上述内容安全、“健壮”或“否”。参数化查询只参数化数据,而不是表名或列名。大多数SQL客户机库也受到类似的限制。我建议您的警告放错地方了,因为没有涉及任何数据,也没有建议名称来自用户,并且应用程序的常见编程实践是将DBMS名称硬编码在其中。@JamesK.Lowden您显然比我更了解这些内容,因此我建议大家在这件事上听取您的意见。