【发布时间】:2016-01-26 09:58:45
【问题描述】:
我有一个大型 CSV 文件,其中每一行都是一个销售事件,由代表 ID、月份和销售价值区分。我想按月为每个代表建立一个累计销量。所以结果看起来像:
repID Jan Feb Mar ...
aaa 2 5 8 ...
...
...
...
我正在使用嵌套字典并得到一个 KeyError: 2
这是我的代码:
Outerdict = {}
for row in readfile:
nesteddict = {}
if repID not in Outerdict:
nesteddict[month] = sales
Outerdict[repID] = nesteddict
else:
Outerdict[repID][month] += sales
关键错误是指向最后一行代码。不确定它是否与 += 操作数有关?
【问题讨论】:
-
什么是
repID变量和month变量? ? -
可以显示csv文件内容吗??
-
'KeyError' 是由于字典没有键。您的“repID”或“月”变量的值未在字典中填充
-
如果你用
Outerdict.setdefault(repID, {}).setdefault(month, 0)替换中间的所有内容,你的最后一行就可以了。 -
您似乎试图简化您的代码以发布它,但在此过程中,您对其进行了如此大的更改,您取出了原来的错误并用一堆不同的错误替换了它。这段代码只会
NameError,如果定义了readfile、repID、month和sales,则不会KeyError。
标签: python dictionary nested