您好,我想从我的查询中输出以下内容:
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
答案 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]))