我试图在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有函数我希望能够致电
答案 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:]})