fields = 'category', 'code', 'price', 'description', 'link', 'picture', 'plans'
table_row = """    <tr>
      <td><img src="{picture}"></td>
      <td><a href="{link}">{description}</a> ({price:.2f})</td>
   </tr>
"""
with open(filename, 'rb') as infile:
    reader = csv.DictReader(infile, fieldnames=fields, delimiter='\t')
for row in reader:
    row['price'] = float(row['price'])
format strings and named arguments in Python