鍍金池/ 問答/Python/ python讀取CSV文件(CSV.DictReader())如何查找某列值

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

我用CSV的dictreader()讀取CSV文件,想將文件中的'duration'列的值放入列表duration_list中,但運(yùn)行后出現(xiàn)錯誤提示如下圖:圖片描述
以下是代碼部分:
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)

回答
編輯回答
心沉

你的文件應(yīng)該先 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
2018年8月27日 07:10