基于以下 JSON
"Records": [
{
"Action_Id": "5542.3478.137599",
"SKU": "DSOLSSREDGUM_V",
"SubId1": "1011l4dIyBtf",
},
{
"Action_Id": "5542.3477.118504",
"SKU": "DSOLSSREDGUM_V",
"SubId1": "1101l4dI2VPX",
},
{
"Action_Id": "5542.3477.118504",
"SKU": "PARCMEPGR15_C6",
"SubId1": "1101l4dI2VPX",
},
{
"Action_Id": "5542.3477.117975",
"SKU": "DSOLSSREDGUM_V",
"SubId1": "1101l4dI2Hwz",
},
{
"Action_Id": "5542.3477.117852",
"SKU": "DSOLSSREDGUM_V",
"SubId1": "1101l4dI2EZK",
}
]
}
我想根据 Action_Id
对元素进行分组。因此,使用上述数据,输出将是
{"Records": [
{
"Action_Id:":"5542.3477.118504",
"Items":
[
{
"SKU":"DSOLSSREDGUM_V",
"SubId1":"1101l4dI2VPX"
},
{
"SKU":"PARCMEPGR15_C6",
"SubId1":"1101l4dI2VPX"
}
],
},
{
"Action_Id":"5542.3478.137599",
"Items":
[
{
"SKU":"DSOLSSREDGUM_V",
"SubID1":"1011l4dIyBtf"
}
],
},
{
"Action_Id":"5542.3477.117975",
"Items":
[
{
"SKU":"DSOLSSREDGUM_V",
"SubID1":"1101l4dI2Hwz"
}
],
},
{
"Action_Id":"5542.3477.117852",
"Items":
[
{
"SKU":"DSOLSSREDGUM_V",
"SubID1":"1101l4dI2EZK"
}
],
}
]
}
最佳答案
试试这个方法:
import collections,itertools
a_dict = { "Records": [
{
"Action_Id": "5542.3478.137599",
"SKU": "DSOLSSREDGUM_V",
"SubId1": "1011l4dIyBtf",
},
{
"Action_Id": "5542.3477.118504",
"SKU": "DSOLSSREDGUM_V",
"SubId1": "1101l4dI2VPX",
},
{
"Action_Id": "5542.3477.118504",
"SKU": "PARCMEPGR15_C6",
"SubId1": "1101l4dI2VPX",
},
{
"Action_Id": "5542.3477.117975",
"SKU": "DSOLSSREDGUM_V",
"SubId1": "1101l4dI2Hwz",
},
{
"Action_Id": "5542.3477.117852",
"SKU": "DSOLSSREDGUM_V",
"SubId1": "1101l4dI2EZK",
}
]
}
temp_dict = collections.defaultdict(list)
for key, group in itertools.groupby(a_dict['Records'], lambda item: item["Action_Id"]): #group by Action_Id
for e in group:
del e['Action_Id'] #remove key,value for key = Action_Id
temp_dict[key].append(e)
result_list= [{'Action_Id':key, 'Items': value} for key,value in temp_dict.items()]
result_dict = {"Records":result_list}
result_dict
result_dict
将是:
{'Records': [{'Action_Id': '5542.3478.137599',
'Items': [{'SKU': 'DSOLSSREDGUM_V', 'SubId1': '1011l4dIyBtf'}]},
{'Action_Id': '5542.3477.117975',
'Items': [{'SKU': 'DSOLSSREDGUM_V', 'SubId1': '1101l4dI2Hwz'}]},
{'Action_Id': '5542.3477.118504',
'Items': [{'SKU': 'DSOLSSREDGUM_V', 'SubId1': '1101l4dI2VPX'},
{'SKU': 'PARCMEPGR15_C6', 'SubId1': '1101l4dI2VPX'}]},
{'Action_Id': '5542.3477.117852',
'Items': [{'SKU': 'DSOLSSREDGUM_V', 'SubId1': '1101l4dI2EZK'}]}]}
关于python - 基于统一对象将 JSON 元素分组在一起 [Python],我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/45046885/