from collections import defaultdict
class Organization:
def __init__(self, organization_id, card_info_id, order_status):
self.organization_id = organization_id
self.payment_order_type = 'instore'
self.card_info_id = card_info_id
self.order_status = order_status
original_list = [
Organization(1, None, None),
Organization(5, 1, 'ORDER_SUCCESS'),
Organization(3, 1, 'ORDER_SUCCESS'),
Organization(4, 2, 'ORDER'),
Organization(2, None, None),
Organization(5, None, None)
]
grouped_by_org_id = defaultdict(list)
for obj in original_list:
grouped_by_org_id[obj.organization_id].append(obj)
data = []
for org_id, group in grouped_by_org_id.items():
group_dicts = [
{
'organization_id': obj.organization_id,
'payment_order_type': obj.payment_order_type,
'card_info_id': obj.card_info_id,
'order_status': obj.order_status
}
for obj in group
]
data.append({
'organization_id': org_id,
'items': group_dicts
})
for it in data:
print(it['organization_id'])
for it2 in it['items']:
print(it2['organization_id'])
print(it2['payment_order_type'])
print(it2['card_info_id'])
print(it2['order_status'])
import json
print(json.dumps(data, indent=2, default=str))
