我有一个这样的字典列表:
def shCounter(orderList):
try:
orderCountList=[]
orderList = [{'key': '130690 002_11', 'sku': '130690 002', 'size': '11', 'name': "Air Jordan 12 Retro 'Flu Game' 2016"}, {'key': '575441 030_6.5', 'sku': '575441 030', 'size': '6.5', 'name': "Air Jordan 1 Retro High OG GS 'Pine Green 2.0'",}, {'key': '575441 030_6.5', 'sku': '575441 030', 'size': '6.5', 'name': "Air Jordan 1 Retro High OG GS 'Pine Green 2.0'"}, {'key': '575441 030_7', 'sku': '575441 030', 'size': '7', 'name': "Air Jordan 1 Retro High OG GS 'Pine Green 2.0'"}, {'key': '575441 030_7', 'sku': '575441 030', 'size': '7', 'name': "Air Jordan 1 Retro High OG GS 'Pine Green 2.0'"}, {'key': '575441 030_7', 'sku': '575441 030', 'size': '7', 'name': "Air Jordan 1 Retro High OG GS 'Pine Green 2.0'"}, {'key': 'FW5190_6.5', 'sku': 'FW5190', 'size': '6.5', 'name': "Yeezy Boost 350 V2 'Yecheil Non-Reflective'"}, {'key': 'FW5190_6.5', 'sku': 'FW5190', 'size': '6.5', 'name': "Yeezy Boost 350 V2 'Yecheil Non-Reflective'"}]
#print(orderList)
for order in orderList:
print(order["key"])
orderCountList.append(order["key"])
orderCountList.append(order["sku"])
orderCountList.append(order["size"])
print(orderCountList)
orderCount={}
for order in orderList:
print(orderCountList.count(order["size"])
#orderCount[order["key"]]
我想按sku和大小来计算所有产品,我发现了一个“计数”功能。但是,我不能直接算出该格。另外,我尝试将其更改为列表,它只计算相同SKU的总数或大小。
如何按大小按sku进行计数?
我的预期输出是这样的:
product A:
6.5 : 2,
7 : 5,
8 : 1,
total : 8
product B:
7 : 1,
9 : 2,
Total : 3
答案 0 :(得分:1)
一种可能性是确定每个给定项目的大小,并更新orderList中每个项目的出现次数。像这样:
orderCounts = {}
for item in orderList:
sku = item["sku"]
if not sku in orderCounts:
orderCounts[sku] = {}
size = item["size"]
if not size in orderCounts[sku]:
orderCounts[sku][size] = 0
orderCounts[sku][size] += 1