通过python从mysql获取格式化的输出

时间:2011-10-01 13:01:24

标签: python mysql format

您好,我想从我的查询中输出以下内容:

OK|Abortedclients=119063 Aborted_connects=67591 Binlog_cache_disk_use=0

但我不知道如何生成它。这是我的剧本:

#!/usr/bin/env python
import MySQLdb

conn = MySQLdb.connect (host = "...", user="...", passwd="...")
cursor = conn.cursor ()
cursor.execute ("SHOW GLOBAL STATUS")
rs = cursor.fetchall ()
#print rs
print "OK|"
for row in rs:
    print "%s=%s" % (row[0], row[1])
cursor.close()

这就是我现在所得到的:

OK|
Aborted_clients=119063
Aborted_connects=67591
Binlog_cache_disk_use=0

3 个答案:

答案 0 :(得分:0)

使用join构建字符串:

print('OK|'+' '.join(['{0}={1}'.format(*row) for row in rs]))

' '.join(iterable)在iterable中从字符串中创建一个字符串,并在字符串之间用空格' '连接在一起。


要修改您发布的代码并进行最少的更改,您可以在print语句的末尾添加逗号:

print "OK|",
for row in rs:
    print "%s=%s" % (row[0], row[1]),

这会抑制每个print语句后自动添加换行符。 但是,它确实增加了一个空格(这不是你想要的):

OK| Aborted_clients=0 ...

答案 1 :(得分:0)

您可以将这些行打印在一个字符串中:

output = []
for row in rs:
   output.append('%s=%s' % (row[0], row[1])

print ''.join(output)

答案 2 :(得分:0)

用'='连接每一对,然后用''连接每个结果,附加到'OK |':

'OK|' + (' '.join(['='.join(r) for r in rs]))