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 вместо использования цикла, т.к он в каком-то странном (для меня по крайней мере) порядке получал данные о именах столбцов. Всем спасибо за ответы.

