Форум сайта python.su
надо обрабатывать запрос sql перед отправкой другому приложению
хотелось бы найти парсер, который переводит sql строку в объект
т.е. генерит из sql объект с атрибутами: имя таблицы, поля, условие выборки, сортировки и т.д. (у меня запросы составляются довольно простые)
слышал, что такие библиотеки существуют, хотя не встречал :)
если знаете такие парсеры в свободном доступе, - поделитесь ссылками?
Офлайн
Про полноценный парсер не слышал, но
а) есть pure Python БД, Gadfly (http://gadfly.sourceforge.net), у нее есть поддержка некоторой части SQL, посмотри, может хватит этой “некоторой части” и получится использовать его парсер.
б) в качестве примеров к какой-нибудь библиотеке парсеров может идти пример с concept-proof реализацией SQL, наверняка не полной, но может тебе хватит. Я не в теме парсеров, попробуй погугли. Сходу ищется пример для pyparsing (http://pyparsing.wikispaces.com/space/showimage/simpleSQL.py), возможно есть более удачные.
Офлайн
pyparsing - кажется, очень достойная вещь. пробую заточить пример для парсинга SQL.
Пока не очень разобрался как работает, но сходу (без документации) смог добавить обработку для ORDER BY
поскольку у меня запросы будут достаточно простыми, то pyparsing (с доработанным примером по SQL) должно хватить за-глаза.
в архиве с pyparsing идёт более 50-и примеров для парсинга различных данных.
Офлайн