Ошибка при переборе словаря, key error
Столкнулся с проблемой: Есть словарь, содержащий в себе данные про операции в количестве 100 штук Написал программу которая перебирает словарь, и выдает нужную операцию по ID либо по ее порядковому номеру.
Суть проблемы: Выдает только ДО 74 операции включительно, дальше выдает
if int(user_input) == i['id']:
KeyError: 'id'
Структура словаря при этом не меняется.
if user_input.isnumeric():
if int(user_input) not in range(1, self.counts) and int(user_input) not in self.ids:
print(error.wrong_id())
return error.wrong_id()
else:
if len(user_input) > 3: # Это вывод по ID
for i in self.operations_dict:
if int(user_input) == i['id']:
return self.information(i)
if len(user_input) < 4: # Это вывод по порядковому номеру
for i in self.operations_dict:
if self.ids[int(user_input)-1] == i['id']:
return self.information(i)
Нерабочий пример из словаря:
{
"id": 667307132,
"state": "EXECUTED",
"date": "2019-07-13T18:51:29.313309",
"operationAmount": {
"amount": "97853.86",
"currency": {
"name": "руб.",
"code": "RUB"
}
},
"description": "Перевод с карты на счет",
"from": "Maestro 1308795367077170",
"to": "Счет 96527012349577388612"
}
Рабочий пример из словаря:
{
"id": 441945886,
"state": "EXECUTED",
"date": "2019-08-26T10:50:58.294041",
"operationAmount": {
"amount": "31957.58",
"currency": {
"name": "руб.",
"code": "RUB"
}
},
"description": "Перевод организации",
"from": "Maestro 1596837868705199",
"to": "Счет 64686473678894779589"
}
Источник: Stack Overflow на русском