从python元组中的mysql格式化数据

时间:2012-10-25 06:36:42

标签: python mysql tuples

我正在从MySQL数据库中读取数据,并希望将其打印到屏幕上。

我用:

import MySQLdb
conn = MySQLdb.connect(host='localhost',user='root',passwd='passwd',db='test',charset='utf8')
cursor = conn.cursor()
cursor.execute('select cust_name,cust_address,cust_city,cust_state from Customers')
numrows = int(cursor.rowcount)
for i in range(numrows):
    row =  cursor.fetchone()
    print "%s  %s  %s   %20s" %(row[0],row[1],row[2],row[3])
cursor.close()
conn.close()

结果如下:

Village Toys  200 Maple Lane  Detroit            MI

Kids Place  333 South Lake Drive  Columbus                     OH

Fun4All  1 Sunny Place  Muncie                     IN

Fun4All  829 Riverside Drive  Phoenix                     AZ

The Toy Store  4545 53rd Street  Chicago                     IL

我怎样才能让它合理化?

2 个答案:

答案 0 :(得分:1)

假设您只想对齐最后一列,请按以下步骤操作:

print "%s  %s  %s   %-20s" %(row[0],row[1],row[2],row[3])

- - 符号证明它在左边。

答案 1 :(得分:0)

此外,Python中有a new formatting syntax

据我了解,您希望每列都有相同的缩进。这可以通过指定每列应占据的空间来实现。因为现在前3个字符串尽可能少地消耗目标字符串,并且只有最后一个字符串需要20个符号。如果指定每个字符串的长度,则会使得到的字符串中的输出很好地对齐。

试试这个:

print('{row[0]:20}{row[1]:20}{row[2]:20}{row[3]:20}'.format(row=row))

花括号中的数字20表示每个字段的长度。