2013-05-15 2 views
0

В python я импортирую файл csv с одним значением datetime в каждой строке (2013-03-14 07:37:33) , и я хочу сравнить он со значениями даты и времени, которые я получаю с отметкой времени. Я предполагаю, что когда я читаю csv, результатом является строка, но когда я пытаюсь сравнить их в цикле со строками из timestamp, они не сравнивают их вообще, не давая мне ошибку одновременно.Сравнение python: date.time from csv file to date.time from timestamp

Любые предложения?

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') 
+0

Работает как красота :) – marinako

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!