def pack_params(params_format="list", param_sql="{param}=%s", join_str=" AND ", **kwargs): if params_format == "list": params = [] elif params_format == "dict": params = {} else: raise ValueError("Unknown params format") param_sqls = [] for k, v in kwargs.items(): if v is not None: if params_format == "list": params.append(v) elif params_format == "dict": params[k] = v param_sqls.append(param_sql.format(param=k)) return join_str.join(param_sqls), params