Formatting a column's value output
Κώστας Παπαδόπουλος
nikos.gr33k at gmail.com
Mon Jan 28 04:47:03 EST 2013
Τη Δευτέρα, 28 Ιανουαρίου 2013 12:27:12 π.μ. UTC+2, ο χρήστης ru... at yahoo.com έγραψε:
> On 01/27/2013 01:50 PM, Mitya Sirenef wrote:
>
> > On 01/27/2013 03:24 PM, Κώστας Παπαδόπουλος wrote:
>
> >> Τη Κυριακή, 27 Ιανουαρίου 2013 9:12:16 μ.μ. UTC+2, ο χρήστης ru... at yahoo.com έγραψε:
>
> > >> <python code>
>
> > >
>
> > > Yes indeed, there is no need to use a loop since i know the exact
>
> > number of items i'am expecting. Thanks you very much for clarifying this
>
> > to me:
>
> > > One last thing i want to ask you:
>
> > >
>
> > > ========================================
>
> > > try:
>
> > > cur.execute( '''SELECT host, userOS, browser, hits, lastvisit FROM
>
> > visitors
>
> > > WHERE counterID = (SELECT ID FROM counters WHERE URL = %s) ORDER BY
>
> > lastvisit DESC''', (htmlpage,) )
>
> > > except MySQLdb.Error, e:
>
> > > print ( "Query Error: ", sys.exc_info()[1].excepinfo()[2] )
>
> > > else:
>
> > > data = cur.fetchall()
>
> > >
>
> > > for host, useros, browser, hits, lastvisit in data:
>
> > > print ( "<tr>" )
>
> > >
>
> > > for item in host, useros, browser, hits, lastvisit.strftime('%A %e
>
> > %b, %H:%M').decode('cp1253').encode('utf8'):
>
> > > print ( "<td><center><b><font color=white> %s </td>" % item )
>
> > >
>
> > > sys.exit(0)
>
> > > =======================================
>
> > >
>
> > > That would be also written as:
>
> > >
>
> > > for row in data:
>
> > > print ("tr>")
>
> > > for item in row:
>
> > > print( "blah blah blah" )
>
> > >
>
> > > And that would make the code easier to read and more clear, but its
>
> > that 'lastvisit' column's value than needs formating,hence it makes me
>
> > use the above syntax.
>
> > >
>
> > > Is there any simpler way to write the above working code without the
>
> > need to specify all of the columns' names into the loop?
>
> >
>
> >
>
> > You can write:
>
> >
>
> > for row in data:
>
> > print ("tr>")
>
> > row = list(row)
>
> > row[-1] = row[-1].strftime(...)
>
> > for item in row:
>
> > print( "blah blah blah" )
>
>
>
> Or alternatively,
>
>
>
> for row in data:
>
> print ("tr>")
>
> for item_num, item in enumerate (row):
>
> if item_num != len(row) - 1:
>
> print( "blah blah blah" )
>
> else:
>
> print( item.strftime(...) )
>
>
>
> Or, being a little clearer,
>
>
>
> LASTVISIT_POS = 4
>
> for row in data:
>
> print ("tr>")
>
> for item_num, item in enumerate (row):
>
> if item_num != LASTVISIT_POS:
>
> print( "blah blah blah" )
>
> else:
>
> print( item.strftime(...) )
Thank you very much, your alternatives are great but i think i'll use Mity'as solution, its more easy to me. Thank you very much!
More information about the Python-list
mailing list