Reputation: 37
I am trying to retrieve information from the database and display it in this certain way:
Name: Batman
Price: £ 18
But I am getting this error: "TypeError: 'int' object is not subscriptable."
How can I fix that?
c.execute("SELECT name, price FROM products WHERE id=02")
records = c.fetchone()
# print(records)
print_products = ''
for record in records:
print_products += 'Name:' + str(record[0]) + '\n' + 'Price: £' + str(record[1])
query_label = Label(frame, fg='darkblue', bg='darkgray', text=print_products)
query_label.pack()
Upvotes: 0
Views: 195
Reputation: 46669
Since you only fetch one record from the result, records
is a tuple of column values. Then you use for record in records:
, it means record
is a column value that may be an integer. So using record[0]
will raise the mentioned exception.
Actually you don't need the for loop at all:
c.execute("SELECT name, price FROM products WHERE id=02")
record = c.fetchone()
# check whether record exists
if record:
print_products = 'Name:' + str(record[0]) + '\n' + 'Price: £' + str(record[1])
query_label = Label(frame, fg='darkblue', bg='darkgray', text=print_products)
query_label.pack()
Upvotes: 2