在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:
答案 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!