有没有办法将python集转换为SQL';s";在;陈述

有没有办法将python集转换为SQL';s";在;陈述,python,sql,psycopg2,Python,Sql,Psycopg2,我试图创建一个SQL语句,用一组键更新多行。我确实意识到我可以为每个键运行每个with语句,但这似乎“更正确”,对我来说速度更快 这就是我得到的: def end_actions(self, timestamp, ids): statement = "UPDATE items " \ "SET end_time = " + timestamp + " " \ "WHERE auction IN " + id

我试图创建一个SQL语句,用一组键更新多行。我确实意识到我可以为每个键运行每个with语句,但这似乎“更正确”,对我来说速度更快

这就是我得到的:

    def end_actions(self, timestamp, ids):
         statement = "UPDATE items " \
                "SET end_time = " + timestamp + " " \
                "WHERE auction IN " + ids + ";"
        self.execute_statement(statement)
问题是如何格式化设置为被SQL的IN语句接受的ID


谢谢。

我不知道你的身份证是什么类型的。我假设它是一组整数。您希望SQL子句看起来像(1,2,3)中的WHERE拍卖。因此,您可以
map
将集合映射到字符串列表中,并使用逗号分隔符将其传递给
join
,并将其括在括号中

"WHERE auction IN (" + ", ".join(map(str, ids)) + ");"
编辑:如果您想要字符串,可能需要先将其用引号括起来

"WHERE auction IN (" + ", ".join("'" + id + "'" for id in ids) + ");"

非常感谢,没有意识到python有一个映射函数,应该可以很好的工作。