Cursor.execute数据使用python中的mysql在(1,2)语句中添加单引号和分隔符

Cursor.execute数据使用python中的mysql在(1,2)语句中添加单引号和分隔符,python,mysql,variables,select,cursor,Python,Mysql,Variables,Select,Cursor,谢谢你的阅读。 尝试将变量发送到cursor.execute(查询,变量)时遇到问题。查询包含在(%s)语句中,变量包含逗号分隔的整数。 当pythons execute向变量添加单引号时,就会出现问题。它打破了这个疑问。所以 如何覆盖此行为以丢弃引号 查询: 评论作者= SELECT autor.id, autor.escuela, autor.nombre, count(*) FROM autor, cita, obra WHERE obra.autor=autor.i

谢谢你的阅读。 尝试将变量发送到cursor.execute(查询,变量)时遇到问题。查询包含在(%s)语句中,变量包含逗号分隔的整数。 当pythons execute向变量添加单引号时,就会出现问题。它打破了这个疑问。所以 如何覆盖此行为以丢弃引号

查询: 评论作者=

SELECT   autor.id, autor.escuela, autor.nombre, count(*) 
FROM     autor, cita, obra 
WHERE    obra.autor=autor.id 
AND      cita.obra=obra.id 
AND      cita.id in ( %s ) 
GROUP BY autor.id, autor.escuela, autor.nombre 
ORDER BY autor.nombre ASC;
数据

citaid=request.cookies.get("idNote")
Cursor.execute(review_authors, citaid)
光标。执行

citaid=request.cookies.get("idNote")
Cursor.execute(review_authors, citaid)
通知错误

citaid=request.cookies.get("idNote")
Cursor.execute(review_authors, citaid)
C:\Users\sebap\Web\venv\lib\site packages\pymysql\cursors.py:170:警告:(1292,“截断的不正确双精度值:'53025303354501') 结果=self.\u查询(查询)


再次感谢

您需要做的是在查询中放置占位符
%s

然后变量将进入其适当的位置

citaid=request.cookies.get("idNote")
placeholders = ",".join(['%s']*len(citaid)) 
review_authors = """SELECT autor.id, autor.escuela, autor.nombre, COUNT(*) 
                    FROM autor, cita, obra 
                    WHERE obra.autor=autor.id 
                        AND cita.obra=obra.id 
                        AND cita.id in ({}) 
                    GROUP BY autor.id, autor.escuela, autor.nombre 
                    ORDER BY autor.nombre ASC;""".format(placeholders)
Cursor.execute(review_authors, citaid)

您需要做的是在查询中放置占位符
%s

然后变量将进入其适当的位置

citaid=request.cookies.get("idNote")
placeholders = ",".join(['%s']*len(citaid)) 
review_authors = """SELECT autor.id, autor.escuela, autor.nombre, COUNT(*) 
                    FROM autor, cita, obra 
                    WHERE obra.autor=autor.id 
                        AND cita.obra=obra.id 
                        AND cita.id in ({}) 
                    GROUP BY autor.id, autor.escuela, autor.nombre 
                    ORDER BY autor.nombre ASC;""".format(placeholders)
Cursor.execute(review_authors, citaid)

谢谢你,亚当,你是个很好的人。你回答得很快,而且是对的。你的话对解决这个问题非常有用。@Seba:不客气。我祝你快乐。谢谢你亚当,你是一个非常好的人。你回答得很快,而且是对的。你的话对解决这个问题非常有用。@Seba:不客气。祝你快乐。