Estoy tratando de hacer esta consulta en sqlalchemy
SELECT id, name FROM user WHERE id IN (123, 456)Me gustaría vincular la lista [123, 456]en el momento de la ejecución.
                    
                        python
                                sqlalchemy
                                
                    
                    
                        wonzbak
fuente
                
                
            fuente

Suponiendo que use el estilo declarativo (es decir, clases ORM), es bastante fácil:
db_sessiones su sesión de base de datos aquí, mientras queUseres la clase ORM con__tablename__igual a"users".fuente
~(~User.id.in_([123,456])) onot_fromsqlalchemy.sql.expression(not_(User.id.in_([123,456]))).Una forma alternativa es usar el modo SQL sin procesar con SQLAlchemy, yo uso SQLAlchemy 0.9.8, python 2.7, MySQL 5.X y MySQL-Python como conector, en este caso, se necesita una tupla. Mi código se enumera a continuación:
Espero que todo funcione para ti.
fuente
Con la expresión API, que según los comentarios es lo que esta pregunta está pidiendo, puede usar el
in_método de la columna correspondiente.Para consultar
utilizar
Esto supone eso
user_tableyconnha sido definido apropiadamente.fuente
Solo quería compartir mi solución usando sqlalchemy y pandas en python 3. Quizás, sería útil.
fuente
Solo una adición a las respuestas anteriores.
Si desea ejecutar un SQL con una declaración "IN", puede hacer esto:
Dos puntos:
EDITAR ¡ Cuidado que si la longitud de la lista es uno o cero, esto generará un error!
fuente
args = [(tuple(ids_list),)], por favor revisa dos veces .(item, )y es incorrecta en SQL