如何在for循环期间读取那些元组并转换int类型?

时间:2015-03-28 03:29:44

标签: python for-loop tuples unix-timestamp

我想在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。

4 个答案:

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