Я должен собрать несколько JSON результатов с сайта. Поскольку у сайта есть предел параллелизма запросов и время ожидания запросов, временные рамки для запросов должны быть разделены. Таким образом, у меня осталось JSON следующим образом:
{
"results": [
[
{
"field": "AccountId",
"value": "11352"
},
{
"field": "number_of_requests",
"value": "241398"
}
],
[
{
"field": "AccountId",
"value": "74923"
},
{
"field": "number_of_requests",
"value": "238566"
}
]
],
"statistics": {
"recordsMatched": 502870.0,
"recordsScanned": 165908292.0,
"bytesScanned": 744173091162.0
},
"status": "Complete"
}
{
"results": [
[
{
"field": "AccountId",
"value": "11352"
},
{
"field": "number_of_requests",
"value": "185096"
}
]
],
"statistics": {
"recordsMatched": 502870.0,
"recordsScanned": 165908292.0,
"bytesScanned": 744173091162.0
},
"status": "Complete"
}
Мне нужно агрегировать результаты, сопоставить значения с количеством запросов и распечатать результат в порядке убывания.
Желаемый вывод:
AccountID : Number of Requests
11352 : 426494
74923 : 238566
Текущий вывод:
AccountID : Number of Requests
11352 : 241398
11352 : 185096
74923 : 238566
Запущенный в данный момент jq-запрос принимает имя файла в качестве ResultDir:
list=$(jq -S '.results[] | map( { (.field) : .value} ) | add ' $ResultsDir |
jq -s -c 'sort_by(.number_of_requests|tonumber) | reverse[] ' |
jq -r '"\(.AccountId) : \(.number_of_requests)"')
Как сделать Я объединяю результаты тех же учетных записей, прежде чем распечатать? Результаты также должны быть в порядке убывания количества запросов.