如何修复“ int”对象不是下标错误?

时间:2019-04-27 23:01:36

标签: python

因此,当尝试从子列表中打印出值时,标题出现错误

for record in data:
    (product_id, name, price) = record

accumulator = 0
order_items = ''
if 'order_1' in form:
    print('<tr><td>%s</td><td>%s</td>' % (name[0], price[0]))
    accumulator += int(price[0])
    order_items += 'item 1 (check menu), '

我只希望输出是这些值的打印,而在累加器变量上加上任何帮助,将不胜感激。

1 个答案:

答案 0 :(得分:0)

原因是这部分:

product_id

您可能希望namepricedata是与data中的子集合相对应的“列”,但这不是它的工作方式。取而代之的是,它们只采用data中最后一个子集合g的值。

您需要类似的内容,它将product_id, name, price = zip(*data) 变成嵌套的集合,其中每个子集合都可以视为一个单独的列:

product_id = []
name = []
price = []

for record in data:
    product_id.append(record[0])
    name.append(record[1])
    price.append(record[2])

等效迭代:

format

除我建议的一项更正外,其余代码应能正常工作。与其使用C样式格式,不如使用f字符串(Python> = 3.6)或output = f'<tr><td>{name[0]}</td><td>{price[0]}</td>' # Python >= 3.6 output = '<tr><td>{}</td><td>{}</td>'.format(name[0], price[0]) # others 方法格式:

{{1}}