我在SQL数据库表中存储了一些数据。我需要从DB中获取所有这些数据,并以人类可读的格式(如对齐表)将其打印为python输出。
下面您可以看到,我使用了fetchall()方法来获取这些数据,并使用了带有两个for循环的print语句。
#executing all the records in the SQL query
cursor.execute("SELECT * FROM game_log")
#Fetch results using fetchall() method
data=cursor.fetchall()
print("\n\nDate&Time\t\tName\tWord\tTurns Given\tTurns Used\tResults")
print("================================================================================")
for item in data:
for value in item:
print(value,end="\t")
print()在下面,您可以看到它们中的一些显示为对齐,但有些数据没有显示为对齐。
如何显示所有对齐的数据?
发布于 2021-12-05 20:41:26
根据您的数据创建一个带有Pandas的数据,然后打印出来:
import pandas as pd
column_names = ["Date&Time", "Name", "Word", "Turns Given", "Turns Used", "Results"]
df = pd.DataFrame.from_records(data, columns = column_names)
print(df)发布于 2021-12-05 21:05:18
发布于 2021-12-06 01:48:33
您可以计算每列的最大宽度(包括标题的宽度),并使用格式字符串确保所有列都打印相同的宽度:
data = [ ["05/12/2021_20:12","kamal","football",8,8,"Lost"],
["05/12/2021_20:14","amal","australia",9,2,"Lost"]]
headings = ["Date&Time","Name","Word","Turns Given","Turns Used","Results"]
widths = [max(map(len,map(str,col))) for col in zip(headings,*data)]
print(*(f"{c:<{w}}" for c,w in zip(headings,widths)))
print("="*sum(widths,len(widths)-1))
for row in data:
print(*(f"{c:<{w}}" for c,w in zip(row,widths)))输出:
Date&Time Name Word Turns Given Turns Used Results
===============================================================
05/12/2021_20:12 kamal football 8 8 Lost
05/12/2021_20:14 amal australia 9 2 Lost https://stackoverflow.com/questions/70238271
复制相似问题