Печать содержимого элемента карты в DynamodB с python - PullRequest
0 голосов
/ 19 апреля 2020

Я пытаюсь напечатать значение "age", хранящееся в атрибуте info в DynamodB. Ниже приведен пример набора данных вместе с кодом, который я использую. Я получаю сообщение об ошибке: "KeyERROR: 'info.age'. Я пробовал несколько разных вариантов, но все безуспешно.

Вот код, где я запрашиваю базу данных и пытаюсь напечатать вывод:

response = table.query(
    KeyConditionExpression=Key('bourbon_id').eq("Four Roses") )

for i in response['Items']:
    print(i['bourbon_id'], ":", i['source_id'], ":", i['info.age'])

Вот пример данных:

"bourbon_id": "Four Roses",
"source_id": "Liquor Barn",
"info":{
    "age": 11,      
    "proof": 124,
    "open": 1,
    "closed": 0,
    "barrled": "June 12 2002",
    "bottled": "December 15 2013",
    "description": "OESK"

Если я удаляю возраст, он печатает все элементы в информации. Как я могу получить только значение возраста для печати?

for i in response['Items']:
    print(i['bourbon_id'], ":", i['source_id'], ":", i['info'])

1 Ответ

1 голос
/ 19 апреля 2020

Синтаксис для ссылки на элементы в dict в вашем случае - i["info"]["age"]. Python не имеет точечной нотации для доступа к членам dict.

...