Почему не находит ключ в словаре?
У меня есть JSON файл со списком операций, в нём их около 100. У каждой операции есть время совершения, которое находится по ключу date. Мне надо отсортировать эти операции по дате.
Я написал код, но почему-то он работает только, если операций около 60. На примерно 80 операциях появляется ошибка что такого ключа, как date, не существует.
import json
with open("operations.json", 'r', encoding='utf-8') as f:
operations_json = f.read()
operations = json.loads(operations_json)
sorted_operations = sorted(operations, key = lambda k: k['date'])
print(sorted_operations)
В чём может быть проблема?
Ответы (1 шт):
Автор решения: MaxU
→ Ссылка
Элементарный способ проверки данных:
In [255]: [(i,x) for i,x in enumerate(operations) if "date" not in x]
Out[255]: [(74, {})]
Т.е. элемент списка с индексом 74 - пустой словарь
исправленное решение:
sorted_operations = sorted(filter(None, operations), key = lambda k: k['date'])