[英]Using jq to convert list of map into an array
我正在努力從aws dynamodb掃描命令獲取格式化輸出。 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"
}
]
}
如您所見,它已經關閉,但是沒有處理類別列表。 感謝獲得所需輸出的任何幫助。
謝謝
您可以使用以下內容:
.[] | { Environment: .Environment.S, Severity: .Severity.S, Category: (.Category.L | map(.S)) }
輸出:
{
"Environment": "NonProd",
"Severity": "Critical",
"Category": [
"Data",
"EMR"
]
}
在這里嘗試 !
聲明:本站的技術帖子網頁,遵循CC BY-SA 4.0協議,如果您需要轉載,請注明本站網址或者原文地址。任何問題請咨詢:yoyou2525@163.com.