Warning: file_get_contents(/data/phpspider/zhask/data//catemap/8/python-3.x/16.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
Python 在sqlalchemy查询筛选器上使用变量_Python_Python 3.x_Sqlalchemy - Fatal编程技术网

Python 在sqlalchemy查询筛选器上使用变量

Python 在sqlalchemy查询筛选器上使用变量,python,python-3.x,sqlalchemy,Python,Python 3.x,Sqlalchemy,可以在过滤器上使用变量吗 我的实际代码: import sqlalchemy from sqlalchemy import Table, MetaData, Column, Integer, String from sqlalchemy.orm import sessionmaker from sqlalchemy.ext.declarative import declarative_base location = 'localhost' engine_str = 'mysql+mysqlc

可以在过滤器上使用变量吗

我的实际代码:

import sqlalchemy
from sqlalchemy import Table, MetaData, Column, Integer, String
from sqlalchemy.orm import sessionmaker
from sqlalchemy.ext.declarative import declarative_base


location = 'localhost'
engine_str = 'mysql+mysqlconnector://xxx:xxx@xxx/xxx'.format(location)
engine = sqlalchemy.create_engine(engine_str, echo=False)
session = sessionmaker(bind=engine)
connection = engine.connect()
session = session(bind=connection)
metadata = MetaData()
Base = declarative_base()

class Services(Base):
    """
    Service details on database
    """
    __tablename__ = 'some_table'
    id = Column(Integer, primary_key=True)
    color= Column(String)
    shape= Column(String)

    def __repr__(self):
        return self.shape
这项工作:

for c in session.query(Services).filter(Services.name.in_(['blue','red'])):
    print(c)
结果:

    circle, square
mysql.connector.errors.ProgrammingError: Failed processing pyformat-parameters; 'MySQLConverter' object has no attribute '_tuple_to_mysql'
但使用avariable,返回:

services = ('blue','red')
for c in session.query(Services).filter(Services.name.in_([services])):
    print(c)
结果:

    circle, square
mysql.connector.errors.ProgrammingError: Failed processing pyformat-parameters; 'MySQLConverter' object has no attribute '_tuple_to_mysql'
提前谢谢

服务
已经是一个序列,无需将其包装在列表中:

for c in session.query(Services).filter(Services.name.in_(services)):

您的上一个示例代码实际上没有使用
服务
。您实际使用的代码是什么?@MartijnPieters您好,您的意思是什么?您的最后一个代码示例使用与另一个示例完全相同的
for
循环<代码>服务不在该循环中使用。@MartijnPieters,啊,谢谢你指出这一点,糟糕的复制/粘贴。哦,天哪。。。真不敢相信。。。Martijin,我数不清你在一夜之间把我从糟糕的代码开发中拯救出来的次数。再次感谢!