2016-02-26 75 views
1

我正在使用Python v2.7。将数据写入csv不起作用

我已经定义了一个School类,它有一个方法get_properties_in_array()返回其属性的数组:

class School: 
    def __init__(self, name, address): 
     self.name = name 
     self.address = address 

    def get_properties_in_array(self): 
     return [self.name, self.address] 

我创建一所学校,并将其添加到列表:

school_list = [] 
my_school = School("school-name","school-address") 
school_list.append(my_school) 

然后,我尝试将此my_school写入CSV文件,其属性被制表符分隔(我已导入csv模块):

with open("schools.csv", 'w') as data_file: 
    writer = csv.writer(data_file, delimiter='\t') 
    for one_school in school_list: 
     data = one_school.get_properties_in_array 
     # TypeError: 'instancemethod' object has no attribute '__getitem__' 
     writer.writerow(data) 

writer.writerow(data)出现以下错误,当我运行它,在该行:

TypeError: 'instancemethod' object has no attribute '__getitem__' 

为什么?如何解决它?

+2

缺少括号:'数据= one_school.get_properties_in_array()' –

回答

2

您需要调用方法

data = one_school.get_properties_in_array() 
+1

我花了20分钟来思考,为什么?谢谢....我需要休息一下。 –