You need to enable JavaScript to run this app.
优惠活动
大模型
产品
解决方案
定价
更多

如何用Python统计用户购物车中相同product_id和quantity的条目数

购物车同款商品统计(Python实现)

数据背景

Cart表结构

包含以下字段:

  • cart_id
  • product_id
  • quantity(Decimal类型)
  • user_id

示例单条记录

<Record cart_id=26 product_id=2 quantity=Decimal('1000.00') user_id=582042554>

需求

禁止使用SQL,通过Python代码统计指定用户下,product_id和quantity完全相同的购物车记录行数,最终输出格式要求:

2 times product_id=2 with quantity=1000 
3 times product_id=4 with quantity=500

Python实现方案

假设已经获取到目标用户的所有购物车记录(存储为Record对象列表user_cart_records),可以借助collections.Counter快速实现分组统计:

from collections import Counter

# 统计(product_id, quantity)组合出现的次数
group_counts = Counter((rec.product_id, rec.quantity) for rec in user_cart_records)

# 按要求格式输出结果
for (prod_id, qty), count in group_counts.items():
    # 优化Decimal显示:如果是整数形式则转成整数,否则保留原格式
    display_qty = int(qty) if qty == int(qty) else qty
    print(f"{count} times product_id={prod_id} with quantity={display_qty}")

代码逻辑说明

  1. 分组统计:用Counter以(product_id, quantity)元组作为统计键,自动计数每个组合出现的次数
  2. 格式处理:针对Decimal类型的quantity做显示优化,避免输出Decimal('1000.00')这类冗余格式
  3. 结果输出:遍历统计结果,按需求的字符串格式打印每一组的统计信息

内容的提问来源于stack exchange,提问作者Oleh Sikirsyi

相关产品推荐
方舟 Agent Plan

超全模态模型 × Harness 升级,最新支持 Deepseek-V4.1-Flash、GLM-5.3 系列、Doubao-Seedream-5.0-pro、Kimi-K3 (部分), 限时 9.9 元起

最近更新时间:2026.06.30 05:23:21