我用CSV的dictreader()读取CSV文件,想将文件中的'duration'列的值放入列表duration_list中,但运行后出现错误提示如下图:
以下是代码部分:
def count_duration(filename,city):
summary_reader = csv.DictReader(filename)
duration_list = []
for row in summary_reader:
duration_list.append(row['duration'])
total_duration = 0
total_number = 0
for i in duration_list:
total_duration += i
total_number += 1
average_duration = total_duration / total_number
more_than_thirty = len(x for x in duration_list if x>30) / len(duration_list)
return '{}的平均骑行时长是{}分钟,骑行时长超过30分钟的比例是{}?'.format(city,average_duration,more_than_thirty)
data_file = {'Washington': './data/Washington-2016-Summary.csv',
'Chicago': './data/Chicago-2016-Summary.csv',
'NYC': './data/NYC-2016-Summary.csv'}
for city, filename in data_file.items():
count_duration(filename,city)
你的文件应该先
open
, 然后再read
. 我下面的这个例子能够正常work