gpt4 book ai didi

Python - 如何填充 mysql 表的输出

转载 作者:行者123 更新时间:2023-11-29 05:52:39 24 4
gpt4 key购买 nike

我正在尝试使用 print 函数打印表格中的每一行以打印每一行。

select_stmt = "SELECT user,password FROM account"

mycursor.execute(select_stmt)
myresult = mycursor.fetchall()

for row in myresult:
print (row)

目前它以一种随意的方式打印:

(None, 'A***9****')
(None, None)
('usertest', 'pwtest')

如何填充每一列以使其看起来更清晰?谢谢

最佳答案

两列

鉴于两列永远不会超过 24 个字符,您可以使用例如:

for user, pwd in myresult:
print('{: <20} {}'.format(user, pwd))

或者如果事先不知道,我们可以先确定第一列的最大大小:

len_user = max(map(lambda x: len(str(x[0])), myresult))
for user, pwd in myresult:
print('{} {}'.format(str(user).ljust(len_user), pwd))

对于示例数据,这会产生:

>>> len_user = max(map(lambda x: len(str(x[0])), myresult))
>>> for user, pwd in myresult:
... print('{} {}'.format(str(user).ljust(len_user), pwd))
...
None A***9****
None None
usertest pwtest

您可以在格式中的两个 {} 之间添加更多间距,以增加元素之间的间距,例如:

>>> for user, pwd in myresult:
... print('{} {}'.format(str(user).ljust(len_user), pwd))
...
None A***9****
None None
usertest pwtest

多列

对于多列,我们可以按照相同的过程,使用numpy计算列最大值:

import numpy as np

lens = np.max([[len(str(xi)) for xi in x] for x in myresult], axis=0)
myformat = ' '.join(['{}']*len(lens))

for col in myresult:
print(myformat.format(*map(str.ljust, map(str, col), lens)))

关于Python - 如何填充 mysql 表的输出,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/52727547/

24 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com