如何对齐python输出[重复]
Posted
技术标签:
【中文标题】如何对齐python输出[重复]【英文标题】:How to align a python output [duplicate] 【发布时间】:2022-01-11 05:39:50 【问题描述】:我有一些数据存储在 SQL 数据库表中。我需要从数据库中获取所有这些数据,并将其打印为 Python 输出,以人类可读的格式(如对齐表)。
您可以在下面看到我使用fetchall()
方法来获取这些数据并使用print
语句和2 个for
循环。
#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()
您可以在下面看到其中一些显示为已对齐,但有些数据未显示为已对齐。
如何显示所有对齐的数据?
enter image description here
【问题讨论】:
【参考方案1】:从您的数据中使用 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)
【讨论】:
非常感谢。我仍然在学习python作为初学者。你的答案很明确。再次感谢您的宝贵时间。 【参考方案2】:使用具有如下格式的 python f 字符串:
>>> print(f'2.2:10.2f')
2.20
>>> print(f'2.2:10.1f')
2.2
查看此内容以供参考:https://docs.python.org/3/reference/lexical_analysis.html#f-strings
【讨论】:
感谢您帮助我,感谢您抽出宝贵时间。 【参考方案3】:您可以计算每列的最大宽度(包括标题的宽度)并使用格式字符串来确保所有列打印相同的宽度:
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
【讨论】:
非常感谢。作为初学者,我仍在学习 Python。你的回答也很清楚。感谢您抽出宝贵时间。以上是关于如何对齐python输出[重复]的主要内容,如果未能解决你的问题,请参考以下文章