12

Python用のSQL解析または分解ライブラリが必要です。SQLテキストクエリを入力して、結果としてクエリパーツを取得できるようにしたいと思います。凝ったものである必要はありませんが、自分で構文解析を行うことは避けたいと思います。理想的には、次のようなことができます。

the_query = "select something from some_table where blah = 'thing' limit 15"
query_parts = the_library.parse(the_query)
print query_parts.limit().val()

>>> '15'

そしてこれも:

the_query = "select something from some_table where blah = 'thing'"
query_parts = the_library.parse(the_query)
print query_parts.limit().val()

>>> None

誰かが私たちにこれへのポインタを与えることができますか?機能がさらに制限されている場合は、それでも問題ありません。

どうもありがとう!

4

1 に答える 1

9

sqlparseをご覧ください。

彼らのホームページから露骨に盗まれた:

>>> # Parsing
>>> res = sqlparse.parse('select * from "someschema"."mytable" where id = 1')
>>> res
<<< (<Statement 'select...' at 0x9ad08ec>,)
>>> stmt = res[0]
>>> stmt.to_unicode()  # converting it back to unicode
<<< u'select * from "someschema"."mytable" where id = 1'
>>> # This is how the internal representation looks like:
>>> stmt.tokens
<<<
(<DML 'select' at 0x9b63c34>,
 <Whitespace ' ' at 0x9b63e8c>,
 <Operator '*' at 0x9b63e64>,
 <Whitespace ' ' at 0x9b63c5c>,
 <Keyword 'from' at 0x9b63c84>,
 <Whitespace ' ' at 0x9b63cd4>,
 <Identifier '"somes...' at 0x9b5c62c>,
 <Whitespace ' ' at 0x9b63f04>,
 <Where 'where ...' at 0x9b5caac>)
>>>
于 2013-01-24T22:41:53.853 に答える