如何按seller值拆分订单字典并分别存入数据库?
问题描述
现有如下结构的订单字典:
{ "1": {"image": "67021f123f31ab63834f.jpg", "name": "Chai", "price": 18.0, "quantity": "1", "seller": "2"}, "24": {"image": "", "name": "Guaraná Fantástica", "price": 4.5, "quantity": "1", "seller": "2"}, "3": {"image": "", "name": "Aniseed Syrup", "price": 10.0, "quantity": "1", "seller": "10"} }
需要将相同seller值的订单拆分到不同字典中,最终得到按卖家分组的订单字典,效果如下:
{ "1": {"image": "67021f123f31ab63834f.jpg", "name": "Chai", "price": 18.0, "quantity": "1", "seller": "2"}, "24": {"image": "", "name": "Guaraná Fantástica", "price": 4.5, "quantity": "1", "seller": "2"} } { "3": {"image": "", "name": "Aniseed Syrup", "price": 10.0, "quantity": "1", "seller": "10"} }
解决方案
用Python可以轻松实现这个分组拆分需求,步骤清晰易懂:
- 准备一个空字典,用来按卖家ID存储对应的订单组,键是卖家ID,值是该卖家的所有订单构成的字典。
- 遍历原始订单字典的每一条数据,把每个订单放到对应卖家的字典里。
- 最后提取所有分组后的订单字典,即可得到预期结果。
示例代码:
# 原始订单数据 original_orders = { "1": {"image": "67021f123f31ab63834f.jpg", "name": "Chai", "price": 18.0, "quantity": "1", "seller": "2"}, "24": {"image": "", "name": "Guaraná Fantástica", "price": 4.5, "quantity": "1", "seller": "2"}, "3": {"image": "", "name": "Aniseed Syrup", "price": 10.0, "quantity": "1", "seller": "10"} } # 初始化分组容器 grouped_orders = {} # 遍历并分组订单 for order_id, order_details in original_orders.items(): seller_id = order_details["seller"] # 如果该卖家还没有对应的订单组,先创建空字典 if seller_id not in grouped_orders: grouped_orders[seller_id] = {} # 将当前订单加入对应卖家的组 grouped_orders[seller_id][order_id] = order_details # 输出拆分后的每个订单字典(后续可直接将每个字典存入数据库) for seller_order_group in grouped_orders.values(): print(seller_order_group) print() # 换行分隔不同卖家的订单
运行代码后,就能得到你需要的拆分结果,之后可以把每个seller_order_group单独存入数据库。
内容的提问来源于stack exchange,提问作者Long Freman
相关产品推荐
相关产品推荐

