Моя структура данных представляет собой список диктов.Я хотел бы запустить функцию над значениями определенных ключей, а затем вывести в результате только определенное количество словарей.
from datetime import datetime
from dateutil.parser import parse
today = '05/17/18'
adict = [{'taskid':1,'desc':'task1','complexity':5,'dl':'05/28/18'},{'taskid':2,'desc':'task2','complexity':3,'dl':'05/20/18'},
{'taskid':3,'desc':'task3','complexity':1,'dl':'05/25/18'}]
def conv_tm(t):
return datetime.strptime(t,'%m/%d/%y')
def days(obj):
day = conv_tm(today)
dl = conv_tm(obj)
dur = (dl-day).days
if dur <0:
dur = 1
return dur
Я нашел самый простой способ обработки дат для 'dl'ключ должен был запустить это понимание:
vals = [days(i['dl']) for i in adict]
#this also worked, but I didn't like it as much
vals = list(map(lambda x: days(x['dl']), adict))
Теперь мне нужно сделать 2 вещи: 1) перенести этот список обратно на клавишу «dl» и 2) вернуть или напечатать (случайное)набор из 2 диктов без изменения оригинального диктанта, возможно, примерно так:
{'taskid':1,'desc':task1,'dl':8,'complexity':5}
{'taskid':3,'desc':task3,'dl':8,'complexity':1}
Приветствия