如何将mysql数据库中的数据用作变量列表

时间:2016-02-06 22:25:30

标签: python mysql

我正在尝试使用mysql查询的结果作为循环中变量的值。但是,查询的结果将作为元组返回,其值指示长整数。这是示例结果: ((2136L,),(41L),(340L),...等)

出于某种原因,当我尝试使用结果时,该值字面上包含“L”后缀,因此我根本无法使用它。因为它是一个元组,所以我无法将其更改为整数并删除后缀。

这是我的代码的基本版本:

db = MySQLdb.connect("localhost","root","password","testdb")
cursor = db.cursor()

sql = ("SELECT thisid FROM thislist")
cursor.execute(sql)
data = cursor.fetchall()

mynumber = str(data[0]) #here i get (2136L,) instead of '2136'

mystring = 'The last thing should be a number as a string: ' + mynumber

最终结果是“最后一件事应该是一个数字作为字符串:2136L”,当我需要的是“......作为一个字符串:2136”。

我是一个python noob,但我一直在努力寻找解决方案,我想象的是一个非常简单的问题。谢谢!

1 个答案:

答案 0 :(得分:2)

fetchall()返回一个元组元组;换句话说,它返回一个行元组,每个行本身就是一列列。这意味着代码中的data[0]仍然是一个元组。

您可以通过访问data[0][0]来解决此问题,但在您的情况下,由于您只想获取一行,您可以使用fetchone()并仍然可以访问data[0]