Python psycopg2 неправильный порядок колонок

При импорте данных в таблицу данные переносятся верно, но названия колонок переносятся не в том порядке

Пример работы Пример работы

Изначальная таблица Изначальная таблица

class DataBase():
def __init__(self):
    self.conn = psycopg2.connect(user="postgres",
                                 password="pass",
                                 host="127.0.0.1",
                                 port="5432",
                                 database="taxipark")

    self.list_of_names = []
    self.list_of_columns = []
    self.list_of_rows = []
    cursor = self.conn.cursor()
    cursor.execute("""SELECT * FROM INFORMATION_SCHEMA.TABLES
    WHERE table_type='BASE TABLE' AND TABLE_CATALOG='taxipark' AND table_schema='public'""")
    for row, form in enumerate(cursor):
        for column, item in enumerate(form):
            if column == 2:
                self.list_of_names.append(str(item))
    cursor.close()

def table_display(self, table_name, table_widget):
    table_widget.setColumnCount(0)
    cursor = self.conn.cursor()
    cursor.execute(f"""SELECT COUNT(*) FROM INFORMATION_SCHEMA.COLUMNS
    WHERE table_catalog = 'taxipark'
    AND table_name = '{table_name}'""")
    count_column = cursor.fetchone()[0]
    print(count_column)
    table_widget.setColumnCount(count_column)
    cursor.execute(f'SELECT * FROM {table_name}')
    table_widget.setRowCount(0)
    for row, form in enumerate(cursor):
        table_widget.insertRow(row)
        self.list_of_rows.append(" ")
        for column, item in enumerate(form):
            value = QtWidgets.QTableWidgetItem(str(item))
            table_widget.setItem(row, column, value)
    table_widget.sortItems(0, QtCore.Qt.AscendingOrder)
    table_widget.setVerticalHeaderLabels(self.list_of_rows)
    self.list_of_rows = []
    cursor.close()

def header_names(self, table_name):
    cursor = self.conn.cursor()
    self.list_of_columns = []

    cursor.execute(f"""SELECT * FROM INFORMATION_SCHEMA.COLUMNS
                            WHERE table_catalog = 'taxipark'
                            AND table_name = '{table_name}'""")
    for row, form in enumerate(cursor):
        for column, item in enumerate(form):
            if column == 3:
                self.list_of_columns.append(str(item))
    cursor.close()
    return self.list_of_columns
if table_name == 'Тарифы':
        for row, form in enumerate(cursor):
            if row == num_row:
                self.label1.setText('Код Тарифа')
                self.label2.setText('Наименование')
                self.label3.setText('Описание')
                self.label4.setText('Стоимость')
                self.label5.hide()
                self.LE1.setText(str(form[1]))
                self.LE2.setText(str(form[2]))
                self.LE3.setText(str(form[3]))
                self.LE4.setText(str(form[4]))
                self.LE5.hide()

Вопрос снят пока что, решил исправить костылем

        if table_name == 'Тарифы':
            self.list_of_columns.append('Код_тарифа')
            self.list_of_columns.append('Наименование')
            self.list_of_columns.append('Описание')
            self.list_of_columns.append('Стоимость')

в def header_names вместо использования цикла, т.к он в каком-то странном (для меня по крайней мере) порядке получал данные о именах столбцов. Всем спасибо за ответы.


Ответы (0 шт):