Найти - Пользователи
Полная версия: Вывод инфо из базы с названием колонок
Начало » Базы данных » Вывод инфо из базы с названием колонок
1
Antonpython
Всем привет
Как сделать, чтобы вывелось все “красиво”)

#!/usr/bin/python

import sqlite3
from sqlite3 import Error

database = "C:\\sqlite\pythonsqlite.db"

conn = sqlite3.connect(database)

cur = conn.cursor()
cur.execute("SELECT * FROM users")



# Выведет название столбцов
# cur.execute("PRAGMA table_info(users)")
# print (cur.fetchall())

# cur.description

rows = cur.fetchall()

for row in rows:
print(row)

cur.close()
conn.close()

В стиле
ID NAME TEL
—————–
1 Vas 123
2 Rty 321


Потому что у меня на моем условном примере выводится, типа

(1, ‘aNTONIO’, ‘+2345563’)
(2, ‘dENIZKA’, ‘+2666633’)

А хочется, чтобы как минимум были заголовки колонок сверху.

Antonpython
Хорошо, можно как-то так
 import sqlite3
from sqlite3 import Error
database = "C:\\sqlite\pythonsqlite.db"
conn = sqlite3.connect(database)
cur = conn.cursor()
cur.execute("SELECT * FROM users")
col_name_list = [tuple[0] for tuple in cur.description]
# Выведет название столбцов
# cur.execute("PRAGMA table_info(users)")
# print (cur.fetchall())
print(col_name_list)
print('---------------------------')
# cur.description
rows = cur.fetchall()
for row in rows:
        print(row)
cur.close()
conn.close()

 ['id', 'name', 'phone']
---------------------------
(1, 'aNTONIO', '+2345563')
(2, 'dENIZKA', '+2666633')
(3, 'Vaasilina', '+3662633')

А можно ли, чтобы тогда без этих круглых скобок и все ровно было ровно все, как будто бы в колонках смотрелось?
Мало ли… возможно, есть что-то выравнивающее в python…это же дзен язык…
vic57
 >>> t = ('1','qwe','qwerty')
>>> print('\t'.join(t))
1	qwe	qwerty
>>> 
Antonpython
Ок, так что - ли?


print('\row'.join(row))

Не понимаю…
vic57
 print('\t'.join(row))
Antonpython
))

Неправильно. Ошибка.

#!/usr/bin/python

import sqlite3
from sqlite3 import Error

database = "C:\\sqlite\pythonsqlite.db"

conn = sqlite3.connect(database)

cur = conn.cursor()
cur.execute("SELECT * FROM users")

rows = cur.fetchall()

for row in rows:

print(row)
# print('\t'.join(row))

cur.close()
conn.close()

Если раскомментировать print('\t'.join(row)) и закомментировать print(row), то ничего не работает.
rami
Тогда, наверно, так:
 import sqlite3
from sqlite3 import Error
w=12                       #подобрать ширину столбцов в символах
database = "C:\\sqlite\pythonsqlite.db"
conn = sqlite3.connect(database)
cur = conn.cursor()
cur.execute("SELECT * FROM users")
col_name_list = [t[0] for t in cur.description]
# Выведет название столбцов
# cur.execute("PRAGMA table_info(users)")
# print (cur.fetchall())
print(*[s.ljust(w) for s in col_name_list])
print('-'*w*3)           #подобрать ширину линии
# cur.description
rows = cur.fetchall()
for row in rows:
        print(*[str(s).ljust(w) for s in row])
cur.close()
conn.close()
This is a "lo-fi" version of our main content. To view the full version with more information, formatting and images, please click here.
Powered by DjangoBB