2015-01-24 3 views
0

Я новичок в Python, но я пытаюсь сбрасывать определенную информацию из базы данных. Я в настоящее время имеют следующие:Дамп информация из базы данных

import os,MySQLdb 

db = MySQLdb.connect(read_default_file="/etc/my.cnf",read_default_group="mysql",db="DbName") 

cursor = db.cursor() 

sql = "select * from DatasetStatus" 

try: 
    print '\n Mysql> ' + sql 
    cursor.execute(sql) 
    results = cursor.fetchall() 

    for row in results: 
     incache = row[3] 
     size = row[5] 

    print "%s"% \ 
     (size) 

except: 
    print " Error ($s): unable to fetch data."%(sql) 

db.close() 

Мне нужно получить доступ к печати "%s", размер наборов данных, но только для тех, где "%i" равно 1 (что означает, что в настоящее время в кэше). Любые мысли о том, как я могу подойти к этому?

ответ

0

Если я правильно понимаю ваш вопрос, ваш цикл должен скорее быть:

for row in results: 
    incache = row[3] 
    if incache == 1: 
     size = row[5] 
     print size 

т.е. с print внутри цикла и охраняет if (я упростил прочь барочный ненужную структуру самого print, потому что этот простейший из всех отпечатков делает то же самое, что и ваш запутанный, и Razor «Оккама» - но это не зависит от вашего вопроса :-).

+0

Работал отлично, спасибо! –

Смежные вопросы