【发布时间】:2017-11-27 23:44:30
【问题描述】:
我有一些 JSON 文件,它们都具有相同的结构(到处都有相同的键,某些键的对应值可能不同)。我想将与某些键关联的值收集到列表中,并将这些列表作为与这些键关联的值存储在新的 JSON 文件中。
例如,考虑这三个文件,我对键 number_items 和相应的值感兴趣。第一个文件——
[
{
"box_id": 1,
"number_items": 4
},
{
"box_id": 3,
"number_items": 15
},
{
"box_id": 6,
"number_items": 2
}
]
第二个文件——
[
{
"box_id": 1,
"number_items": 7
},
{
"box_id": 3,
"number_items": 15
},
{
"box_id": 6,
"number_items": 4
}
]
第三个文件——
[
{
"box_id": 1,
"number_items": 5
},
{
"box_id": 3,
"number_items": 9
},
{
"box_id": 6,
"number_items": 0
}
]
这些应该合并成这样的东西——
[
{
"box_id": 1,
"number_items": [
4,
7,
5
]
},
{
"box_id": 3,
"number_items": [
15,
15,
9
]
},
{
"box_id": 6,
"number_items": [
2,
4,
0
]
}
]
这可以使用jq 完成吗?如果没有,有什么好方法可以做到这一点?请注意,实际场景包含 150 多个具有 3 个键的文件,我希望将它们的值合并到列表中。
【问题讨论】: