我想在forloop期间将元组类型数据更改为int类型。 如何阅读那些元组数据? (因为我想将这些数据转换为datetime)
>>> print data
((1424794931452.0,), (1424794931645.0,), (1424794931821.0,),(1424794932014.0,), (1424794932189.0,))
我有5个元组数据(unixtime),这就是我想要做的。
for i in data:
con = int(data[i][0])
dt = datetime.fromtimestamp(con // 1000)
s = dt.strftime('%Y-%m-%d %H:%M:%S')
print(s)
我认为那些元组数据是([0] [0],[1] [0],[2] [0],[3] [0],[4] [0])对吗?
有什么问题?我不太了解python。
答案 0 :(得分:2)
你有一个包含单个元素元组的元组。你可能想要这样的东西:
from datetime import datetime
data = ((1424794931452.0,), (1424794931645.0,), (1424794931821.0,),(1424794932014.0,), (1424794932189.0,))
for elem in data:
con = int(elem[0])
dt = datetime.fromtimestamp(con // 1000)
s = dt.strftime('%Y-%m-%d %H:%M:%S')
print(s)
输出:
2015-02-24 11:22:11 2015-02-24 11:22:11 2015-02-24 11:22:11 2015-02-24 11:22:12 2015-02-24 11:22:12
答案 1 :(得分:1)
我认为问题在于我是数据中的元素,而不是索引。所以你应该这样做:
for i in data:
con = int(i[0])
dt = datetime.fromtimestamp(con // 1000)
s = dt.strftime('%Y-%m-%d %H:%M:%S')
print(s)
答案 2 :(得分:0)
i
已经是子元组,而不是data
中的索引。所以它足以做到:
from datetime import datetime
data = ((1424794931452.0,), (1424794931645.0,), (1424794931821.0,),(1424794932014.0,), (1424794932189.0,))
for i in data:
dt = datetime.fromtimestamp(i[0] // 1000)
s = dt.strftime('%Y-%m-%d %H:%M:%S')
print(s)
结果是:
2015-02-25 00:22:11
2015-02-25 00:22:11
2015-02-25 00:22:11
2015-02-25 00:22:12
2015-02-25 00:22:12
答案 3 :(得分:0)
当您执行for x in y
语法时,x会在每次迭代时分配给序列元素。要枚举索引,您必须使用内置函数enumerate
,它返回索引和项目。
我会做这样的事情:
for con in (int(d[0]) for d in data):
do_something_with(con)