pythonian比较:从csv文件到date.time的time.time来自时间戳

时间:2013-05-15 16:31:15

标签: python datetime csv timestamp

在python中我导入一个csv文件,每行有一个日期时间值(2013-03-14 07:37:33) 我想将它与我用时间戳获得的日期时间值进行比较。 我假设当我读取csv时结果是字符串,但是当我尝试在循环中将它们与来自时间戳的字符串进行比较时,它们根本不会比较它们而不会同时给我一个错误。

有什么建议吗?

csv_in = open('FakeOBData.csv', 'rb')
reader = csv.reader(csv_in)

for row in reader:
    date = row
    OBD.append(date)

。 。

for x in OBD:
    print x
    sightings = db.edge.find ( { "tag" : int(participant_tag)},{"_id":0}).sort("time")
    for sighting in sightings:
        time2 = datetime.datetime.fromtimestamp(time)
        if x == time2:

2 个答案:

答案 0 :(得分:0)

使用datetime.datetime.strptime将字符串解析为datetime对象。您可能还需要计算出CSV中日期字符串所在的时区,并对其进行调整。

%Y-%m-%d %H:%M:%S应该作为您的格式字符串:

x_datetime = datetime.datetime.strptime(x, '%Y-%m-%d %H:%M:%S')
if x_datetime == time2:

或在阅读时解析:

for row in reader:
    date = datetime.datetime.strptime(row[0], '%Y-%m-%d %H:%M:%S')

答案 1 :(得分:0)

您可以使用datetime.datetime.strptime自行解析它,如果您知道日期所在的格式应该没问题。如果您不知道格式或想要更强大,我建议您使用解析器来自python-dateutil库,它有一个非常健壮的解析器。

pip install python-dateutil

然后

import dateutil.parser
d = dateutil.parser.parse('1 Jan 2012 12pm UTC') # its that robust!