我有一个JSON,看起来像这样:
{
"orders": [
{
"order": [
{
"items": [
{
"name": "Item 1",
"id": [],
"type": [
{
"name": "Color",
"value": [
{
"value": "blue"
}
]
},
{
"name": "model",
"value": [
{
"value": "Stereo"
}
]
}
]
}
]
},
{
"items": [
{
"name": "Item 2",
"id": [],
"type": [
{
"name": "Color",
"value": [
{
"value": "Yellow"
}
]
},
{
"name": "model",
"value": [
{
"value": "NewModel"
}
]
}
]
}
]
}
],
"id": "715874"
},
{
"order": [
{
"items": [
{
"name": "Item 6",
"id": [],
"type": [
{
"name": "Range",
"value": [
{
"value": "10"
}
]
},
{
"name": "Type",
"value": [
{
"value": "AllRegion"
}
]
}
]
}
]
},
{
"items": [
{
"name": "Item 4",
"id": [],
"type": [
{
"name": "Color",
"value": [
{
"value": "Yellow"
}
]
},
{
"name": "model",
"value": [
{
"value": "OldModel"
}
]
}
]
}
]
}
],
"id": "715875"
}
]
}
我正在尝试转换为这种格式
{
"order": [
{
"items": [
{
"name": "Item 1",
"type": {
"Color": "blue",
"model": "Stereo"
}
},
{
"name": "Item 2",
"type": {
"Color": "Yellow",
"model": "NewModel"
}
}
],
"id": "715874"
},
{
"items": [
{
"name": "Item 6",
"type": {
"Color": "blue",
"Type": "AllRegion"
}
},
{
"name": "Item 4",
"type": {
"Color": "Yellow",
"model": "OldModel"
}
}
],
"id": "715875"
}
]
}
我尝试使用这样的查询,无法实现我正在寻找的格式。
.orders[]|{ orders:[ .order[]|{ .order[].items:.],id:.id } ]}
{订单:[ .订单[]|{订单:[.items[].name[] ],id:联系我们
请帮帮我谢谢提前。我在Python中解析它,如果任何其他Lib可以像JQ一样解析它,那也很有帮助。
2条答案
按热度按时间shyt4zoc1#
使用jq,只需为每个字段定义它应该覆盖和收集的内容:
Demo
lmvvr0a82#
我会使用JSON模块。假设你的原始json存储为
original_data
。然后,您可以将其转换为您想要的格式:
.dumps
将新结构存储为json所以代码应该是这样的:
这将产生以下JSON(如所需):