Mysql
 sql >> база данни >  >> RDS >> Mysql

Печатайте резултатите във формат MySQL с Python

Няма нужда от външна библиотека. Разпечатва данните с имената на колоните. Всички редове с променливата 'columns' могат да бъдат елиминирани, ако не се нуждаете от имената на колоните.

sql = "SELECT * FROM someTable"
cursor.execute(sql)
conn.commit()
results = cursor.fetchall()

widths = []
columns = []
tavnit = '|'
separator = '+' 

for cd in cursor.description:
    widths.append(max(cd[2], len(cd[0])))
    columns.append(cd[0])

for w in widths:
    tavnit += " %-"+"%ss |" % (w,)
    separator += '-'*w + '--+'

print(separator)
print(tavnit % tuple(columns))
print(separator)
for row in results:
    print(tavnit % row)
print(separator)

Това е изходът:

+--------+---------+---------------+------------+------------+
| ip_log | user_id | type_id       | ip_address | time_stamp |
+--------+---------+---------------+------------+------------+
| 227    | 1       | session_login | 10.0.0.2   | 1358760386 |
| 140    | 1       | session_login | 10.0.0.2   | 1358321825 |
| 98     | 1       | session_login | 10.0.0.2   | 1358157588 |
+--------+---------+---------------+------------+------------+

Магията се крие в третата колона на всеки cursor.description ред (наречен cd[2] в кода). Тази колона представлява дължината в знаци на най-дългата стойност. По този начин оразмеряваме показаната колона като по-голямо между това и дължината на самата заглавка на колоната (max(cd[2], len(cd[0])) ).



  1. Database
  2.   
  3. Mysql
  4.   
  5. Oracle
  6.   
  7. Sqlserver
  8.   
  9. PostgreSQL
  10.   
  11. Access
  12.   
  13. SQLite
  14.   
  15. MariaDB
  1. Опитвам се да изпълним операция MINUS в MySQL

  2. Как да изберете данни от две таблици с помощта на една заявка

  3. MySQL:Преглед с подзаявка в ограничението на клаузата FROM

  4. SQL изтриване на редове въз основа на друга таблица

  5. Как да създадете база данни в MySQL