如何使用DictRead.csv文件

2024-09-28 21:52:55 发布

您现在位置:Python中文网/ 问答频道 /正文

我正在为一个班做一个节目,我们的老师给了我们csv.DictReader使用函数,而不解释它。这只是一个更大计划的一部分。我想看一份天气数据表。它有几个列名为TemperatureF、VisibilityMPH等。。我需要读入电子表格的一列,并将其值作为一个列表,放入一个关键字为列名的字典中。我这样做了,但是当我试图循环遍历第二列时,我的列表没有填满。这是我的代码和输出。在

import csv

def read_file(filename, col_list):
    with open(filename, 'r') as f:
        reader = csv.DictReader(f)

        final_dict = {}
        x = 0
        while x < len(col_list):

            print 'X IS ' + str(x)
            this_list = []

            print 'list before adding stuff: ' #test

            print this_list   #test

            for row in reader:
                this_list.append([row[col_list[x]]])

            print 'list after adding stuff' #test

            print this_list   #test

            final_dict[col_list[x]] = this_list

            x += 1
        print final_dict

    def main():
        read_file('weather.csv', ['VisibilityMPH', 'TemperatureF'])


    if __name__ == "__main__":
        main()

输出:

enter image description here


Tags: csvtest列表readmaindefcolthis
1条回答
网友
1楼 · 发布于 2024-09-28 21:52:55

你可能想要的是:

import csv

def read_file(filename, col_list):
    with open(filename, 'r') as f:
        reader = csv.DictReader(f)

        final_dict = {}
        x = 0

        while x < len(col_list):

            print 'X IS ' + str(x)
            this_list = []

            print 'list before adding stuff: ' #test

            print this_list   #test

            for row in reader:
                this_list.append([row[col_list[x]]])

            print 'list after adding stuff' #test

            print this_list   #test

            final_dict[col_list[x]] = this_list

            x += 1

        print final_dict

def main():
    read_file('weather.csv', ['VisibilityMPH', 'TemperatureF'])


if __name__ == "__main__":
    main()

请注意while块的缩进不正确。但是代码片段实际上是可以改进的。在

^{pr2}$

相关问题 更多 >