我有以下数据,第一列是ID
,第二列是category
,第三列是items
,第四列是price
。我正在尝试按类别查找每个 ID 的支出总和(左起第 2 列):我在下面包含了一个示例输出。
但是,我坚持elif
声明并说它有keyError: 'A'
。我真的不知道出了什么问题。
样本输出:
Spending by B
fuel - 19.60
grocery - 11.42
输入:
A|groceries|cereal|15.50
A|groceries|milk|14.75
A|tobacco|cigarettes|25.00
A|fuel|gasoline|54.90
B|fuel|propane|19.60
B|groceries|apple|11.42
C|tobacco|cigarettes|25.00
代码:
for line in fileinput.input(fo1):
#print line
line =str.rstrip(line)
line = line.split('|')
print line[0],line[1]
(name,category,items,price)=line
if line[0] in report2 and line[1] in report2:
report2[line[0]][line[1]] += float(price)
elif line[1] in report2[line[0]]:
report2[line[0]][line[1]]+=float(price)
else:
report2[line[0]][line[1]]=float(price)
print report2.keys
print report2.items()