如何在Python中将元组类型转换为整数?

9

我是一名Python初学者。我想把sqlcommand的结果(类型为tuple)转换成int类型。请问应该怎么做?

import MySQLdb

db = MySQLdb.connect("localhost","root","password","database")
cursor = db.cursor()
cursor.execute("SELECT timestamp FROM unixdb")
u_data = cursor.fetchall()

>>> print u_data
((1424794931452.0,),)

u_data 类型为 tuple,我想从中获取 int 类型。


2
你所有的回复都包含在2个元组中,并且只有1个整数吗?例如:((num,),) - jkd
2个回答

18

你手头有的是一个元组中套了一个元组。因此,你需要获取外层元组的第一项,即 u_data[0]:最内层的元组。然后你需要获取其中的第一项,即 u_data[0][0]。那是一个float类型,所以要获取一个整数,你需要用int()将整个表达式包起来,得到:

int(u_data[0][0])

这真的是最好的答案吗?在这种情况下,它可以工作。但是假设 OP 想要从任意深度的元组/列表中提取单个元素?也许我试图过于泛化,但似乎必须有一个函数来解开任意深度的结构,不是吗? - Mike Williamson
当然有:就是你编写的那个! - kindall

1

如果结果集包含多个时间戳,您可以通过以下方式获取时间戳列表:

...
u_data, _ = cursor.fetchall()
u_data = [int(_) for _ in udata]

网页内容由stack overflow 提供, 点击上面的
可以查看英文原文,
原文链接