Python 将str传递给SQL alchemy查询

Python 将str传递给SQL alchemy查询,python,mysql,sqlalchemy,Python,Mysql,Sqlalchemy,实际上,我有一个从文本文件中获取必要细节的代码 这里我从文本文件中获取一些id 然后,我需要将相同的内容传递到SQLAlchemy查询以获取结果 但是我没有得到这里所需要的结果 这是代码: addys = ','.join('"{}"'.format(''.join(tenant)) for tenant in tenants if tenant) #print "%s" % (addys) # cleanup and close files files.close() query1 = q

实际上,我有一个从文本文件中获取必要细节的代码

这里我从文本文件中获取一些id

然后,我需要将相同的内容传递到SQLAlchemy查询以获取结果

但是我没有得到这里所需要的结果

这是代码:

addys = ','.join('"{}"'.format(''.join(tenant)) for tenant in tenants if tenant)
#print "%s" % (addys)

# cleanup and close files
files.close()

query1 = query1.filter(model.name == "in-addr.arpa.")
query2 = query2.filter(model.tenant_id.in_([addys]))
此处的“addys”类型如下所示:

<type 'str'>

方法中
\u的参数应该是一个id数组,但您可以通过一个元素将列表传递给它,即字符串和所有id除以逗号。您需要使用ID拆分字符串并将其作为列表传递:

query = query.filter(model.tenant_id.in_(addys.split(',')))
或者更改以前的行:

tenant_ids = [''.join(tenant) for tenant in tenants if tenant]
query = query.filter(model.tenant_id.in_(tenant_ids))

您不必加入字符串,只需:

addys = [tenant for tenant in tenants if tenant]


谢谢你的回复。但它似乎不起作用。在查询中,它如下所示:['1235B3A73AD24B9C86CF30125310B24'],['CBDF2542C194A069464F69EFF4859A'])\n“]如果我正在使用您的第一个解决方案,则在打印查询时,它将显示如下:WHERE domains.tenant_id In(:tenant_id_1,:tenant_id_2))另一方面,我不知道
租户的结构,现在第二个解决方案也必须起作用。多谢老兄。第二个解决方案很完美!:)但它似乎不起作用。在查询中,它的作用如下:['1235B3A73AD24B9C86CF30125310B24',['CBDF2542C194A069464F69EFF4859A']。\n]如果我遵循您的解决方案,这里的值将作为列表传递。也许这就是问题所在。以及\n也在那里,可能是一个问题
addys = [tenant for tenant in tenants if tenant]
query2 = query2.filter(model.tenant_id.in_(addys))