如何使用 JQ 转换此 JSON 数据以依次将每个嵌套数组元素提取到顶层?
Posted
技术标签:
【中文标题】如何使用 JQ 转换此 JSON 数据以依次将每个嵌套数组元素提取到顶层?【英文标题】:How do I transform this JSON data using JQ to extract each nested array element to the top level in turn? 【发布时间】:2019-04-16 14:08:06 【问题描述】:给定表单的输入
[
"a": 1, "b": ["c": 1, "c": 2],
"a": 2, "b": ["c": 4, "c": 5]
]
我正在尝试转换为:
[
"a": 1, "b": ["c": 1],
"a": 1, "b": ["c": 2],
"a": 2, "b": ["c": 3],
"a": 2, "b": ["c": 4]
]
我有[map(.b) ] | flatten
,但是似乎无法使用父上下文进行任何进一步的操作。我真的被困住了,如果有任何帮助,我将不胜感激。
谢谢
【问题讨论】:
【参考方案1】:这是一个简单的解决方案,除了“b”之外没有提及任何键:
map(. + (.b[] | b: [.]))
【讨论】:
【参考方案2】:你可以试试这个过滤器:
jq 'map(a,"b":.b[]|[.])' file
它用c
的每个值分别更新b
的内容。
【讨论】:
以上是关于如何使用 JQ 转换此 JSON 数据以依次将每个嵌套数组元素提取到顶层?的主要内容,如果未能解决你的问题,请参考以下文章
如何将此嵌套的 JSON 以柱状形式转换为 Pandas 数据框