大家好我有一个json
[{"seller_id": 3, "item": {"product_id": 4, "amount": 1, "id": 9}},
{"seller_id": 1, "item": {"product_id": 1 , "amount": 2, "id": 10}},
{"seller_id": 3, "item": {"product_id": 3, "amount": 2, "id": 11}},
{"seller_id ": 1," item ": {" product_id ": 2," amount ": 2," id ": 12}}]
我想组合在一起,这意味着相同的卖家会再次对商品进行分组
返回结果如下:
[{"seller_id": 3, "list_item": [{"product_id": 4, "amount": 1, "id": 9},
{"product_id": 3, "amount": 2, "id": 11}]},
{"seller_id": 1, "list_item": [{"product_id": 1, "amount": 2, "id": 10},
{"product_id": 1, "amount": 2, "id": 10}, {"product_id": 2, "amount": 2, "id": 12}]}]
谁有想法?
请您参考如下方法:
使用 itertools.groupby (并假设一些键和值周围的奇怪间距是偶然的):
from itertools import groupby
values = [{"seller_id": 3, "item": {"product_id": 4, "amount": 1, "id": 9}},
{"seller_id": 1, "item": {"product_id": 1, "amount": 2, "id": 10}},
{"seller_id": 3, "item": {"product_id": 3, "amount": 2, "id": 11}},
{"seller_id": 1, "item": {"product_id": 2, "amount": 2, "id": 12}}]
def get_seller_id(d):
return d['seller_id']
groups = []
for seller_id, items in groupby(sorted(values, key=get_seller_id), get_seller_id):
groups.append({'seller_id': seller_id, 'list_item': list(items)})
print(groups)
