Я изо всех сил пытаюсь получить форматированный вывод из команды сканирования aws dynamicodb.
Элемент в таблице DynamodB выглядит следующим образом:
{
"labels": {
"Category": [
"Data",
"EMR"
],
"Environment": "NonProd",
"Severity": "Critical"
},
"subscriber_id": "blah@blah.com",
"subscriber_type": "email"
}
Когда я запускаю запрос:
aws dynamodb scan --table-name dummy_table --region region_name --
profile default --query "Items[?subscriber_id.S ==
'blah@blah.com'].labels.M[]"
Я получаю вывод, как показано ниже:
[
{
"Environment": {
"S": "NonProd"
},
"Severity": {
"S": "Critical"
},
"Category": {
"L": [
{
"S": "Data"
},
{
"S": "EMR"
}
]
}
}
]
Желаемый результат:
{
"Category": [
"Data",
"EMR"
],
"Environment": "NonProd",
"Severity": "Critical"
}
Чтобы добиться желаемого результата, я пытался манипулировать с помощью jq.
Обновленный запрос:
aws dynamodb scan --table-name dummy_table --region
region_name --
profile default --query "Items[?subscriber_id.S ==
'blah@blah.com'].labels.M[]" |
jq -r '.[]
| to_entries[]
| [{key:.key, value:.value[]}]
| from_entries' | jq -s add
Вывод:
{
"Environment": "NonProd",
"Severity": "Critical",
"Category": [
{
"S": "Data"
},
{
"S": "EMR"
}
]
}
Как видите, он близок, но не обрабатывает список категорий. Любая помощь с получением желаемого результата приветствуется.
Спасибо