【发布时间】:2021-06-21 08:38:10
【问题描述】:
我正在尝试转换一个 json 文件,在提取我需要的内容后它看起来像这样:
{
"title": "title 1",
"description": "desc 1",
"message": "msg 1",
"region": "region 1",
"resource": "resource 1"
}
{
"title": "title 1",
"description": "desc 1",
"message": "msg 1",
"region": "region 2",
"resource": "resource 2"
}
我想把它变成
{
"title": "title 1",
"description": "desc 1",
"message": "msg 1",
"data": [
{"region 1":"resource 1"},
{"region 2":"resource 2"}
]
}
我的想法是转换 json 并使重复的标题、描述、消息唯一(从而删除重复项),同时将不断变化的区域和资源保留为数据对象。
我试过 group_by(.title) 它给了我一个错误“无法用字符串“title”索引字符串,我想做 group_by(.title,.description,.message)。
我尝试了 unique_by 也得到了错误。
我当前的查询是
jq '.[] | {title : .title, description : .description, message : .message, data: [{region: .region, resource: .resource}] } | group_by(.title,.description,.message)'
【问题讨论】:
-
{"region 1","resource 1" }没有意义,你有一个对象大括号,但里面有一个列表。 -
谢谢你是对的,我会有一个字典列表,键是区域 1,区域 2,值是资源 1,资源 2。已更改。