JQ-запрос, где ключ является частью самих данных - PullRequest
0 голосов
/ 01 февраля 2019

У меня есть следующие данные JSON из вызова API .....

{
  "status": "ok",
  "meta": {
    "count": 3
  },
  "data": {
    "1030907370": {
      "client_language": "en",
      "last_battle_time": 1548555418,
      "account_id": 1030907370,
      "created_at": 1525288212,
      "updated_at": 1548557165,
      "private": null,
      "global_rating": 3906,
      "clan_id": null,
      "nickname": "aaa",
      "logout_at": 1548557161
    },
    "1020786770": {
      "client_language": "ja",
      "last_battle_time": 1548948444,
      "account_id": 1020786770,
      "created_at": 1465998341,
      "updated_at": 1548948547,
      "private": null,
      "global_rating": 4396,
      "clan_id": null,
      "nickname": "bbb",
      "logout_at": 1548948544
    },
    "1018984431": {
      "client_language": "en",
      "last_battle_time": 1548550089,
      "account_id": 1018984431,
      "created_at": 1456254986,
      "updated_at": 1548550089,
      "private": null,
      "global_rating": 1666,
      "clan_id": null,
      "nickname": "ccc",
      "logout_at": 1548550016
    }
  }

}

Я бы хотел получить что-то вроде .....

«account_id»: 1030907370, «global_rating»: 3906

«account_id»: 1020786770, «global_rating»: 3906

«account_id»: 1018984431, «global_rating»: 3906

Тот факт, что значение account_id используется в качестве уникального ключа, является тем, с чем я не сталкивался в руководствах, и мне нужна помощь с jq-запросом, который выполнит эту работу.Tks!

1 Ответ

0 голосов
/ 01 февраля 2019

Ключ здесь для доступа к именам ключей заключается в использовании keys, keys_unsorted или to_entries, например,

.data
| to_entries[]
| "\"account_id\": \(.key): \"global_rating\": \(.value.global_rating)"

объектов JSON

Если вы хотите выводв виде потока JSON-объектов:

| .data
| to_entries[]
| {account_id: .key} + (.value | {global_rating})
...