解析和构建过滤查询,类似于Python / JavaScript中的SQL WHERE子句

我正在为数据库构建一个查询引擎,该数据库从SQL和其他来源提取数据.对于正常使用情况,用户可以使用Web表单,其中用户可以使用select和ranged输入指定过滤参数.但对于高级用例,我想指定一个用户可以输入的过滤方程式框

> AND,或
>嵌套括号
>变量名称
>

, <, =, != operators

因此,过滤方程式可能如下所示:

 ((age > 50) or (weight > 100)) and diabetes='yes'

然后解析此输入,检测输入错误(不存在的变量名称等)和基于它构建的SQL Alchemy查询.

我看到一篇关于https://stackoverflow.com/a/1395854/315168类似问题的帖子

Python http://navarra.ca/?p=538似乎存在几种语言和迷你语言解析器

但是,对于我的问题,是否存在开箱即用解决方案或接近解决方案的任何软件包?如果不是在Python中构造这样的查询解析器和构造函数的最简单方法是什么?

最佳答案 看看
https://github.com/dfilatov/jspath

它与xpath类似,因此语法不像SQL那么熟悉,但它比分层数据更强大.

点赞