我有一个像这样的json数组:
[
{
'id': 1,
'values': [
{
'cat_key': 'ck1'
},
{
'cat_key': 'ck2'
}
]
},
{
'id': 2,
'values': [
{
'cat_key': ck3
}
]
}
]
我想在字段values
上展平此数组,以便:
[
{
'id': 1,
'cat_key': 'ck1'
},
{
'id': 1,
'cat_key': 'ck2'
},
{
'id': 2,
'cat_key': 'ck3'
}
]
在python中执行此操作的最有效方法是什么?
答案 0 :(得分:0)
obj = json.loads(json_array)
new_obj = []
for d in obj:
if d.get('values'):
for value in d['values']:
new_obj.append(dict(id=d['id'],cat_key=value['cat_key']))
new_json = json.dumps(new_obj)
答案 1 :(得分:0)
您的JSON在技术上不是有效的,但假设它是{且list
可以迭代:
out = []
for d in your_json:
for v in d.get('values', []):
out.append({'id': d['id'], 'cat_key': v['cat_key']})
print json.dumps(out)
结果:
[{"id": 1, "cat_key": "ck1"}, {"id": 1, "cat_key": "ck2"}, {"id": 2, "cat_key": "ck3"}]