我有以下代码
for item in lesson:
result = connection.execute("SELECT bookingID FROM Booking WHERE lessonBooked = ? AND dateBooked = ? AND username = ?",([item,now1,self.username]))
result = result.fetchall()
if(len(result) > 0):
for item2 in result:
print (item2)
result2 = connection.execute("SELECT roomNO FROM BookedRoom WHERE bookingID = ?",([item2]))
result2 = result2.fetchall()
print (result2)
打印item2行输出: (39,) (43,) (48,) (49,) 当我在最后3行中添加代码时,代码便崩溃了。 item2的输出是预期的,但是有一种删除逗号的方法,因为我怀疑逗号会导致问题,因为item2列表然后用于从BookedRoom表中选择。
答案 0 :(得分:1)
fetchall
返回一个序列序列(通常是一个元组列表),无论它返回一行还是多行,还是选择一个或多个属性。因此,您可以使用item2[0]
或更简单地直接使用以下序列:
result2 = connection.execute("SELECT roomNO FROM BookedRoom WHERE bookingID = ?", item2)
答案 1 :(得分:1)
在第二条执行行中尝试以下操作:
result2 = connection.execute("SELECT roomNO FROM BookedRoom WHERE bookingID = ?",([item2[0]]))
答案 2 :(得分:0)
如果打印功能正在打印字符串,请尝试以下代码:
for item in lesson:
result = connection.execute("SELECT bookingID FROM Booking WHERE lessonBooked = ? AND dateBooked = ? AND username = ?",([item,now1,self.username]))
result = result.fetchall()
if(len(result) > 0):
for item2 in result:
print (item2[:-1])
result2 = connection.execute("SELECT roomNO FROM BookedRoom WHERE bookingID = ?",(item2[:-1]))
result2 = result2.fetchall()
print (result2)
这将不考虑字符串中的最后一个字符。
或者您可以尝试以下操作:
result2 = connection.execute("SELECT roomNO FROM BookedRoom WHERE bookingID = ?",([item2[0]]))