我目前正在尝试将不需要的JSON输出转换为对我更有价值的格式。答案应该使用jq或Python代码(我使用Python中的pyjq库)
以下是当前的JSON输出:
[
{"colour":"Red", "car": [ {"year":2000, "make":"Honda", "model":"Accord"} ] },
{"colour":"Blue", "car": [ {"year":2015, "make":"Toyota", "model":"Camry"} ] },
{"colour":"Red", "car": [ {"year":1999, "make":"Dodge", "model":"Ram"} ] }
]
使用jq或可能使用Python循环,我想将其格式化为一个新的JSON对象,如下所示:
[
{ "Red":[2000,1999] },
{ "Blue": 2015 }
]
有人知道我如何格式化任何类似于上面第一个代码段的JSON,并将其转换为第二个代码段中列出的所需结果吗。你知道吗
如果你在数据中循环,你可以修改一个新的dict,比如:
代码:
测试代码:
结果:
group_by
涉及排序,因此对于手头的问题来说效率不高。下面是使用jq的直接方法。它类似于本页其他地方提供的python解决方案:以
map_values
开头的行用于满足避免单例数组的要求。如果结果字典可以接受,最后一行可以省略。你知道吗注意,即使
.car
数组有多个元素,上面的程序也可以工作。你知道吗jq非常适合这个。让我们看看它能做什么。首先,让我们把汽车按颜色分组。
group_by()
接受一个数组,并按所需的子表达式对元素进行分组。你知道吗然后让我们将每个子数组映射到一个
{color: [years]}
对象。map()
函数接受一个数组,并将每个输入元素更改为一些新的输出元素。我们可以用它来创建我们想要的{color: [years]}
对象。你知道吗让我们从部分映射开始。我们把颜色拿出来看看是什么样子。你知道吗
太好了。我们有颜色。现在要得到我们再次使用
map
的年份列表,将cars的子数组转换成年份数组。你知道吗相关问题 更多 >
编程相关推荐