我在尝试在python变量中输出sqlite查询的输出时遇到问题以跟踪总计。我环顾四周,看过使用c.fetchone()方法的例子,但我似乎无法让它工作,我不断收到错误TypeError:' NoneType'对象没有属性' ___ getitem ____' 。我不明白这意味着什么。有人可以帮忙吗?
i = -1
i = i + 1
self.t = pytesseract.image_to_string(PIL.Image.open('test2.jpg'))
self.c.execute("SELECT name FROM item WHERE code = '%s'" % self.t)
self.listbox.insert(i,self.c.fetchone())
self.listbox1.insert(i,"£")
self.c.execute("SELECT price FROM item WHERE code = '%s'" % self.t)
self.listbox2.insert(i,self.c.fetchone())
self.y=self.c.fetchone()[i]
print self.y
答案 0 :(得分:1)
您需要获取一次值并重复使用:
self.c.execute("SELECT price FROM item WHERE code = %s", (self.t, ))
value = self.c.fetchone()[0]
self.listbox2.insert(i, value)
self.y = value
请注意我如何将self.t
值传递给查询 - 这称为参数化,与使用字符串格式进行SQL查询相比,应该是首选。