0

在 python 中,我在每一行(2013-03-14 07:37:33)导入一个带有一个日期时间值的 csv 文件,我想将它与我通过时间戳获得的日期时间值进行比较。我假设当我读取 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:
4

2 回答 2

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!
于 2013-05-15T16:42:01.177 回答
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')
于 2013-05-15T16:34:38.527 回答