从CSV文件Python制作对象

时间:2014-07-08 21:26:37

标签: python csv data-structures

我试图在Python中创建一个对象集合,其属性来自CSV文件。

目前,我有一个简单的课程:

class myClass:
    name = ""
    age = 0
    hobbies = []

    def __init__(self, var1, var2, var3)
        self.name = var1
        self.age = var2
        self.hobbies = var3

为了存储大量数据而不会使代码混乱,我已经创建了一个类似的CSV文件:

Robert Samson,50,swimming,biking,running
Sam Robertson,70,reading,singing,swimming

等等。我应该有大约50个,它们可能会改变,这是我使用CSV的原因。

有没有办法从这个CSV文件系统地制作myClass对象?我已经读过你不应该尝试在循环中创建具有唯一名称的对象,但我不确定原因。

由于

编辑:我没有找到在python中存储csv数据的方法,我需要创建对象...我的示例代码有点误导,因为myClass有函数我希望能够致电

2 个答案:

答案 0 :(得分:11)

只需创建一个空列表并将对象添加到其中:

import csv

my_list = []

with open('file.csv', 'r') as f:
    reader = csv.reader(f)
    for row in reader:
        my_list.append(myClass(row[0], row[1], row[2:]))

答案 1 :(得分:1)

为什么不使用字典?

import csv

persons = []

with open('file.csv', 'r') as f:
    reader = csv.reader(f)
    for row in reader:
        persons.append({'name': row[0], 'age': int(row[1]), 
                        'hobbies': row[2:]})