如何用jq将字典列表合并为以ID为键的单个字典
需求可行性及实现方案
这个需求完全可行,用jq可以快速实现转换。
核心命令
jq '.Items | map({key: .ID, value: del(.ID)}) | from_entries' input.json
命令拆解
.Items:定位到原JSON中的Items数组字段map({key: .ID, value: del(.ID)}):遍历数组内的每个元素,将每个元素转换为key-value结构:key对应元素的ID字段值value对应删除了ID字段后的剩余内容
from_entries:将上述key-value结构的数组转换为目标格式的JSON对象
示例验证
输入JSON:
{ "Items": [ { "ID": "123abc", "Name": "test name", "Description": "item 1" }, { "ID": "321zyx", "Name": "test name two", "Description": "item 2" } ] }
执行命令后输出:
{ "123abc": { "Name": "test name", "Description": "item 1" }, "321zyx": { "Name": "test name two", "Description": "item 2" } }
内容的提问来源于stack exchange,提问作者Chris
相关产品推荐
相关产品推荐

