我的任务是将所有ASP.NET Web API
迁移到Pyhton API
中。我正在使用带有蓝图的烧瓶来实现这一点。
现在我正在努力filtering
返回的结果在我的Python API
(使用 Flask 开发(
这是我在ASP.NET Web API
中是如何做到
的query = String.Concat(queryMain, queryWhere, queryOrder, " order by " + (String.IsNullOrEmpty(orderBy) ? " start_time " : orderBy + " " + orderType));
var ctx = new LairdDbContext();
try
{
var anomalyList = ctx.AnomaliUinque.SqlQuery(query).ToList<AnomalyUnique>();
if (anomalyList == null)
{
return null;
}
Ag.Items = anomalyList.Where(x => x.rownumber >= startfrom && x.rownumber <= skp).ToList();
Ag.Total = anomalyList.Count();
return Ag;
}
请注意,我正在使用var anomalyList = ctx.AnomaliUinque.SqlQuery(query).ToList<AnomalyUnique>();
获得
主要结果
然后我使用以下行
过滤返回的结果Ag.Items = anomalyList.Where(x => x.rownumber >= startfrom && x.rownumber <= skp).ToList();
在上面的代码行中,rownumber
是 返回的列之一query
这是我的Python Flask API
版本[这是错误的,因为生成的查询由于"WHERE 行号"部分而存在语法错误]
query = querymain + queryWhere + queryOrder + ' order by ' + m_orderBy + ' WHERE rownumber >= {0} AND rownumber <= {1}'.format(startfrom,skp)
print(query)
try:
cursor.execute(query)
rows = cursor.fetchall()
resp = jsonify(rows)
resp.headers.add('Access-Control-Allow-Origin', '*')
resp.status_code = 200
print(resp)
return resp
except Exception as e:
print(e)
return '', 400
finally:
cursor.close()
现在我的问题是如何使用 Flask API 在 Python 中复制相同的过滤器,特别是以下行。
anomalyList.Where(x => x.rownumber >= startfrom && x.rownumber <= skp).ToList();
使用标准库中的filter()
filter(lambda x: x["rownumber"] >= startfrom && x["rownumber"] <= skp, resp)