получить форматированный вывод из MySQL через Python - PullRequest
0 голосов
/ 01 октября 2011

Привет. Мне нужен следующий вывод из моего запроса:

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 голосов
/ 01 октября 2011

Вы можете напечатать строки вместе в одну строку:

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

print ''.join(output)
0 голосов
/ 01 октября 2011

Соедините каждую пару с '=' и затем каждый результат с '', добавленным к 'OK |':

'OK|' + (' '.join(['='.join(r) for r in rs]))
0 голосов
/ 01 октября 2011

Создайте строку, используя join :

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

' '.join(iterable) создает строку из строк в итерируемых, соединенных вместе пробелом ' ' между строками.


Чтобы исправить отправленный вами код с минимальными изменениями, вы можете добавить запятую в конце операторов print:

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

Это подавляет автоматическое добавление новой строки послекаждое печатное заявление.Это добавляет, однако, пробел (это не то, что вы сказали, что вы хотели):

OK| Aborted_clients=0 ...
Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...