【发布时间】:2019-02-01 08:49:25
【问题描述】:
我有一个 CSV 文件,可以转换成字典。字典中的一行如下所示:-
OrderedDict([('MVA', '10072672'), ('Code', 'F5'), ('Tbk Mnth', '01-Dec-16'), ('Branch', 'W0S'), ('Make', 'VOLKSWAGENRSA'), ('Status', 'RISK'), ('Price', '111200.27')])
我试图对“价格”列中的值求和,但 n = 0。我做错了什么?另外,对不同代码求和的最有效方法是什么?
import csv
linecount = 0
with open(r'C:\Users\anthony\Documents\Test\Data.csv') as file:
reader = csv.DictReader(file)
for row in reader:
print(row)
code = (row["Code"])
if code == 'F5':
linecount += 1
print(linecount)
n = sum([item['Price'] for item in reader])
print(n)
【问题讨论】:
-
您已经使用循环到达阅读器的末尾:
for row in reader这就是没有剩余数据的原因 -
你得到什么错误?程序会崩溃还是给出错误的输出?如果是后一种情况,你想实现什么,你实际得到什么?我认为您将
sum放在错误的位置,因为它无法访问reader数据,但请确认。 -
@gonczor OP 提到了这个问题;他们得到 n = 0,所以这是错误的输出。
标签: python python-3.x