将字典值转换为时间戳格式

时间:2015-10-09 14:16:10

标签: python datetime dictionary timestamp type-conversion

我有这样的字典:

>>print xdict 
{'time': [(2015, 6, 3, 10, 41, 3), (2015, 6, 3, 20, 32, 21), ..., ...]}

这是将这些值转换为时间戳格式的方法吗?我希望完全像这样:

print xdict
{'time': [1433320863.0, 1433356341.0, ..., ...]}

3 个答案:

答案 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"])}