python读取CSV文件(CSV.DictReader())如何查找某列值

我用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)

阅读 10.8k
1 个回答

你的文件应该先 open, 然后再read. 我下面的这个例子能够正常work

#!/usr/bin/python

import csv

filename = './a.csv'
  
duration_list = []
with open(filename) as csvfile:
    reader = csv.DictReader(csvfile)
    for row in reader:
        duration_list.append(row['duration'])


print duration_list
撰写回答
你尚未登录,登录后可以
  • 和开发者交流问题的细节
  • 关注并接收问题和回答的更新提醒
  • 参与内容的编辑和改进,让解决方法与时俱进
推荐问题