On 08/05/10 13:52, Νίκος wrote:
dataset = cursor.fetchall()

for row in dataset:
     print ( '''<tr>  ''' )

     date = row[2].strftime( '%d %b, %H:%M' )

     print ( '''<td>  %s</td>       <td>  %s</td>       <td>  %s</td>  ''' %
( row[0], row[1], date ) )

Unfortunately had to ditch the 'for entry in row' line because
couldn't iterate over the items of the row.

Could you please shoe me how could i do the same thing with
iteration?!

Well, depending on whether "row" is a tuple or a list, you can do either

  row[2] = row[2].strftime(...)  # if it's a list
  # the assignment will fail if it's a tuple

or you can just iterate over a predefined list/tuple:

  for row in dataset:
    print ("<tr>")
    for item in (row[0], row[1], row[2].strftime(...)):
      print ("<td>%s</td" % item)
    print ("</tr>")

Though I think I'd make it a bit clearer by naming the fields:

  for host, hits, dt in dataset:
    print ("<tr>")
    for item in (host, hits, dt.strftime(...)):
      print ("<td>%s</td>" % item)
    print ("</tr>")

Or perhaps even just

    print ("".join("<td>%s</td>" % item
      for item in (host, hits, dt.strftime(...))
      )

Whichever you prefer. I think I'm partial to the 2nd-from-last version, especially as the list of fields may grow.

-tkc



--
http://mail.python.org/mailman/listinfo/python-list

Reply via email to