从cursor.fetchall()打印结果,不带尾随'L'

时间:2017-09-25 20:04:24

标签: python mysql arrays mysql-python fetchall

我有一个python代码,通过MySQLdb访问mysql来运行select语句。然后我使用cursor.fetchall()将该输出收集为数组,但问题是它在每个输出的末尾打印L,如下所示:

sql = "SELECT data1, data2  FROM table1, table2 ;"
cursor.execute(sql)
dataarray = cursor.fetchall()
print dataarray

>>> ((75379L, 45708L), ...)

但是在我的桌子上,没有L's,只有数字。如何确保它只是在没有L的情况下获取和打印数据?我宁愿避免在字符串上使用[:-1],因为它会将None值更改为Non

1 个答案:

答案 0 :(得分:2)

L表示long整数类型。在Python 2中,它自动用于太大而不能表示为普通整数的值。

MySQLdb似乎总是返回long s:

  

虽然MySQL的INTEGER列完全转换为Python   整数,UNSIGNED INTEGER可能会溢出,所以这些值是   转而使用Python长整数。

对这些值调用str()时,应省略尾随'L'