Python sqlparse не создает новую строку для каждого столбца должным образом

#python #sql #parsing #format #indentation

#python #sql #синтаксический анализ #формат #отступ

Вопрос:

Общий пакет для синтаксического анализа SQL в Python sqlparse :

 pip3 install --user sqlparse
  

Я хочу проанализировать список create table операторов, библиотека иногда создает новые строки, но с неправильным отступом:

 import sqlparse;

print(sqlparse.format("create table (id int,foo text, bar float)", reindent=True, keyword_case="upper"));
  

Отступ становится все больше и больше для каждой последующей строки, из-за чего текст SQL выглядит неровным. Как указать sqlparse правильный отступ? Пробовал reindent_aligned=True тоже, но не работает.

Ответ №1:

Вы можете попробовать мою библиотеку SQLGlot

 python -m sqlglot "create table x (id int,foo text, bar float)"

CREATE TABLE x (
  "id" INT,
  "foo" TEXT,
  "bar" FLOAT 
)