По заданию надо выяснить быстрый заказ.
В моём понимании - нужно взять 2 даты(Дата Заказа,Дата Выдачи Заказа).
Подсчитать разницу дней между ними и уже с помощью условий найти самый короткий промежуток дней между датами и следовательно вывести его с фамилией заказчика.
Для этого создал отдельно словарь,где в качестве ключа хранится количество дней,а значение это фамилия заказчика.В рабочем цикле я считаю каждую дату заказа и дату выдачи заказа(dateorder,datetakeorder). После начинаю заносить полученное в словарь вместе с фамилией.То есть ищем разницу дней первой фамилии,нашли и заносим и дни и фамилию в словарь.
def fastorders(self):
dateformat='%d.%m.%Y'
print("Вывод тех записей,где был самый маленький срок выполнения заказа:")
storagedatedict={}# Словарь для хранения полученных дней
for bookorder in bookorders:
dat1=datetime.strptime(bookorder.dateorder,dateformat)
dat2=datetime.strptime(bookorder.datetakeorder,dateformat)
difdayz=dat2-dat1
dayzstr=str(difdayz)
storagedatedict[(dayzstr.split()[0]),bookorder.surnm]+=1
for daiz,srn in storagedatedict.items():
print(daiz,srn)
if daiz=='1' or '2':
print(daiz, ' - ',srn)
Но в конечно итоге, он ругается на KeyError(см. прикреплённый скриншот).
Он видит количество вычтенных дней(см.прикреплённый скриншот), в исключении сразу он увидел и первую фамилию по списку.
Но в тоже время он ничего не видит в так называемом отображении.
При этом как вы можете видеть в функции я словарь инициализировал пусть и значениями по умолчанию,но что пойдёт в словарь в качестве ключа и значения программа пока не знает.