如何从选择语句中删除逗号

时间:2019-04-17 14:11:02

标签: python sqlite

我有以下代码

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表中选择。

3 个答案:

答案 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]]))