Как объединить несколько массивов JSON, которые присутствуют в одном файле JSON, в один массив - PullRequest
0 голосов
/ 21 марта 2019

Я получаю приведенный ниже пример из скрипта Python, который я запустил. Я хотел бы объединить все массивы в один массив, как показано в выходных данных, необходимых ниже.
Пример:

[
  {
    "key": "65",
    "type": "Rug" 
  },
  {
    "key": "66",
    "type": "Rug" 
  }
][
  {
    "key": "52",
    "type": "A" 
  }
]

Требуется Ouput:

[
  {
    "key": "65",
    "type": "Rug" 
  },
  {
    "key": "66",
    "type": "Rug" 
  },
  {
    "key": "52",
    "type": "A" 
  }

]

Ответы [ 2 ]

3 голосов
/ 21 марта 2019

В вашем описании проблемы указано, что вы просто хотите объединить массивы, что легко сделать с помощью параметра командной строки «slurp»:

jq -s add

Эффективность

Если эффективность являетсяпроблема, которая может возникнуть, если число входных массивов очень велико, тогда вы могли бы воспользоваться потоковым характером ввода:

jq -n 'reduce inputs as $in ([]; .+$in)'
0 голосов
/ 02 апреля 2019

и вот альтернативный способ сделать это, основываясь на jtc утилита unix:

bash $ <file.json jtc -Jw[:]
[
   {
      "key": "65",
      "type": "Rug"
   },
   {
      "key": "66",
      "type": "Rug"
   },
   {
      "key": "52",
      "type": "A"
   }
]
bash $ 
...