sql >> Databáze >  >> RDS >> Mysql

Tisk výsledků ve formátu MySQL pomocí Pythonu

Není potřeba externí knihovna. Vytiskne data s názvy sloupců. Všechny řádky s proměnnou 'columns' lze odstranit, pokud nepotřebujete názvy sloupců.

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)

Toto je výstup:

+--------+---------+---------------+------------+------------+
| 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 |
+--------+---------+---------------+------------+------------+

Kouzlo spočívá ve třetím sloupci každého cursor.description řádek (nazývaný cd[2] v kódu). Tento sloupec představuje délku nejdelší hodnoty ve znacích. Velikost zobrazeného sloupce tedy nastavíme na větší hodnotu mezi touto a délkou samotného záhlaví sloupce (max(cd[2], len(cd[0])) ).



  1. JSON_ARRAY() – Vytvořte pole JSON ze seznamu hodnot v MySQL

  2. Příklady ADDDATE() – MySQL

  3. SQL Server - Jak uzamknout tabulku, dokud neskončí uložená procedura

  4. Jak na serveru SQL Server najdu všude, kde se odkazuje na sloupec?