我有这样的字典:
>>print xdict
{'time': [(2015, 6, 3, 10, 41, 3), (2015, 6, 3, 20, 32, 21), ..., ...]}
这是将这些值转换为时间戳格式的方法吗?我希望完全像这样:
print xdict
{'time': [1433320863.0, 1433356341.0, ..., ...]}
答案 0 :(得分:4)
您的时间元组不代表UTC时间。如果是您的本地时区,并且相应时间的utc偏移规则与现在相同,或者如果C时间库可以访问平台上的历史时区数据库,那么您可以将时间元组传递给{{1}从纪元以来获得"秒#34;:
time.mktime()
否则,您应该使用#!/usr/bin/env python
import time
x = {'time': [(2015, 6, 3, 10, 41, 3), (2015, 6, 3, 20, 32, 21)]}
x['time'] = [time.mktime(tt + (-1,)*3) for tt in x['time']]
来访问所有平台上的tz数据库并计算自Epoch"以来的正确"秒。 (POSIX时间戳)对应于输入时间元组:
pytz
答案 1 :(得分:0)
循环浏览列表并执行以下代码。您需要 id id2 t1_A t1_B t1_C t1_D t2_A t2_B t2_C t2_D
1 1 1 1 0 0 0 0 0 0 0
2 2 2 0 1 0 0 0 0 0 0
3 3 3 1 0 0 0 0 0 0 0
4 4 1 0 0 0 0 0 1 0 0
5 5 2 0 0 0 0 0 1 0 0
6 6 3 0 0 0 0 0 0 1 0
才能更改为秒
time.mktime
答案 2 :(得分:-3)
使用解压缩的元组(over *运算符)初始化datetime.datetime。 然后使用map和lambda,您可以轻松实现目标。
import time
import datetime
def transform(xdict):
return {"time": map(lambda k: time.mktime(datetime.datetime(*k).timetuple()), xdict["time"])}