Witosser
@Witosser
студент IT ВУЗа, увлекаюсь веб-разработкой

Почему не получается получить значение по ключу «from» в списке python?

Все ключи кроме from работают, при использовании "from" выдает ошибку: KeyError: 'from' и ещё я могу использовать этот ключ в выводе строк, я предполагаю дело в том что это зарезервированое слово, но не знаю как это исправить.
Пример Json
{
"id": 280743947,
"state": "EXECUTED",
"date": "2018-09-27T14:26:24.629306",
"operationAmount": {
"amount": "45653.70",
"currency": {
"name": "руб.",
"code": "RUB"
}
},
"description": "Перевод организации",
"from": "Счет 23177857685058835559",
"to": "Счет 56363465303962313778"
},

#!/usr/bin/env python3
import json
from operator import attrgetter
todos_by_user = {}
with open("operations.json", "r", encoding = "utf-8") as read_files:
    data = json.load(read_files)
print(len(data))
data = [trans for trans in data if trans ] #избавляемся от пустых элементов, без этой строчки код внизу будет выдавать ошибку
sorted_data = sorted(data, key=lambda x:x.get('date'), reverse = True)

for trans in data[:1]:
    print(trans, end="\n\n")
    
for trans in sorted_data[:5]:

    print('{date} {description}\n'
          '{from_to} -> {to}\n'
          '{amount} {currency} \n'.format(from_to=trans["from"],  date = trans["date"],description =trans["description"], to=trans['to'],
                                        amount = trans['operationAmount']['amount'], currency = trans['operationAmount']['currency']['name'], )
          )
  • Вопрос задан
  • 187 просмотров
Решения вопроса 2
@zexer
d = {'from': 1}
d.get('from', 'not found')

Нет никаких проблем использовать слово 'from' как ключ словаря, вам нужно посмотреть что вы подаете в цикле в виде trans
Ответ написан
SoreMix
@SoreMix Куратор тега Python
yellow
Значит нет ключа from где-то. Используйте метод get
www.pythonz.net/references/named/dict.get/
Ответ написан
Комментировать
Пригласить эксперта
Ваш ответ на вопрос

Войдите, чтобы написать ответ

Войти через центр авторизации
Похожие вопросы