SqlAlchemy in_运算符为NULL

时间:2014-04-22 15:00:40

标签: python mysql sql sqlalchemy

我想在sqlalchemy中使用in_运算符,使用两个值,其中一个是NULL(mysql NULL),我不知道如何通过Python传递它?

所以我有一个Python cgi包含一堆参数,我格式化然后最终存储在dict queryValues中(键是列名,值是存储在fieldStorage中的用户发送的值) )

for attr,value in queryValues.items() :  #queryValues is a dict of parameters
     valueWithNone = value.append(None) #I want to includ NULL
     and_args_of_cr = [(and_(getattr(TableCR.c,attr).in_(valueWithNone)))]

我尝试了无和sqlalchemy.sql.null(),也尝试直接放置in_(value,None),但值的格式为['Yes'],因此我不知道如何执行此操作。

但是它无法正常工作,我该怎么办呢?

1 个答案:

答案 0 :(得分:1)

value.append(None)行是就地修改,不会返回任何内容,因此valueWithNone将为无。这可能就是你想要的:

for attr,value in queryValues.items():
    queryvalues = value[:]  # Create a copy of list
    queryvalues.append(None)
    and_args_of_cr = [(and_(getattr(TableCR.c,attr).in_(queryvalues)))]