Working with Pandas, I have to rewrite queries implemented as a dict:
query = {"height": 175}
The key is the attribute for the query and the value could be a scalar or iterable.
In the first part I check if the value is not NaN and scalar.
If this condition holds I write the query expression with the == symbol, but else if the value is Iterable I would need to write the expression with the in keyword.
This is the actual code that I need to fix in order to work also with Iterables.
import numpy as np
from collections import Iterable
def query_dict_to_expr(query: dict) -> str:
    expr = " and ".join(["{} == {}"
                        .format(k, v) for k, v in query.items()
                         if (not np.isnan(v)
                             and np.isscalar(v))
                         else "{} in @v".format(k) if isinstance(v, Iterable)
                         ]
                        )
    return expr
but I got invalid syntax in correspondence with the else statement.
 
     
     
    