2013-08-29 3 views
0

У меня есть файл json, у которого есть объект даты. его в этом формате: u'2013-08-29 '. Я хочу найти дни между этой датой и текущей датой. Я пробовал:Python; количество дней с даты

>>> date=data2[u'emd'][u'result'][0][u'row'][u'date']; %%date=u'2013-07-31' 
str(datetime.date.today())-str(date) 

но это совсем не сработало. Есть ли простой способ сделать это?

+1

Вы вычитаете две строки. Как вы ожидали, что это сработает? – abarnert

ответ

4

Используйте класс datetime для разбора строки, полученной из json-файла, и получения текущей даты. Когда вы вычтите эти два объекта datetime, вы получите объект timedelta, который имеет атрибут days.

>>> from datetime import datetime 
>>> (datetime.now() - datetime.strptime('2013-07-31', '%Y-%m-%d')).days 
29 
+0

thats почти идеально. но как мне получить доступ к числу дней в виде целого числа? ... nevermind: P – kmdewey

+0

@ user2729910 Это целое число. Атрибут 'days' - целое число. –

0

, начиная с извлечения из поля data.json файла

import json 
from datetime import datetime 

with open('data.json') as data_file:  
    data = json.load(data_file) 
    date = data["masks"] 
    (datetime.now() - datetime.strptime(date, '%Y-%m-%d')).days 

, где использование datetime, как это предусмотрено Виктора.

Смежные вопросы