6

SQL やその他のソースからデータを取得するデータベース用のクエリ エンジンを構築しています。通常の使用例では、ユーザーは Web フォームを使用して、select および ranged 入力でフィルタリング パラメータを指定できます。しかし、高度なユースケースでは、ユーザーが入力できるフィルタリング式ボックスを指定したいと思います

  • および、または

  • ネストされた括弧

  • 変数名

  • 、<、=、!= 演算子

したがって、フィルタリングの式は次のようになります。

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

次に、この入力が解析され、入力エラー (存在しない変数名など) が検出され、それに基づいて SQL Alchemy クエリが構築されます。

同様の問題に関する以前の投稿を見ましたhttps://stackoverflow.com/a/1395854/315168

Python http://navarra.ca/?p=538用のいくつかの言語およびミニ言語パーサーが存在するようです

ただし、すぐに使用できるソリューションまたは問題のソリューションに近いパッケージはありますか? そうでない場合、Python でそのようなクエリ パーサーとコンストラクターを構築する最も簡単な方法は何でしょうか?

4

2 に答える 2

1

https://github.com/dfilatov/jspathをご覧ください

これは xpath に似ているため、構文は SQL ほどなじみがありませんが、階層データに対して強力です。

于 2014-06-10T01:13:41.463 に答える