【发布时间】:2018-05-09 14:16:18
【问题描述】:
我希望各位好心人能帮助我完成一个项目。本质上,我正在尝试创建一个将 CSV 文件作为输入的类,检查文件中的数据列数,并将该数据存储在字典中的键、值对中。到目前为止我的代码如下:
import csv
class DataStandard():
'''class to store and examine columnar data saved as a csv file'''
def __init__(self, file_name):
self.file_name = file_name
self.full_data_set = {}
with open(self.file_name) as f:
reader = csv.reader(f)
# get labels of each column in list format
self.col_labels = next(reader)
# find the number of columns of data in the file
self.number_of_cols = len(self.col_labels)
# initialize lists to store data using column label as key
for label in self.col_labels:
self.full_data_set[label] = []
我遇到困难的部分是一旦创建了字典 (full_data_set) 我不知道如何循环遍历 CSV 文件的其余部分并将数据存储在每个键的相应值中(列) .由于我必须循环遍历 csv.reader 对象,我到目前为止所尝试的一切都没有奏效。 我希望这个问题是有道理的,但请随时提出任何澄清问题。此外,如果您想到一种可能以更好的 Pythonic 方式工作的方法,我将不胜感激。这是我在课堂上的第一个自导项目之一,所以这个主题对我来说相当新。提前致谢!
【问题讨论】:
-
使用
for row in reader: -
你可以使用
zip(self.col_labels, row)创建对(key,value),但是如果你有更多的行那么你应该创建list of dictionares。 -
csv模块有一个DictReader类。
标签: python loops csv dictionary