2015-06-21 99 views
0

我想写csv文件,并在响应主体返回他们,但我得到类型错误:类型“_csv.writer”对象没有LEN()

TypeError: object of type '_csv.writer' has no len() 

下面是我的代码:

class LogCSV(object): 
    """CSV generator. 

    This class responds to GET methods. 
    """ 
    def on_get(self, req, resp): 
     """Generates CSV for log.""" 

     mylist = [ 
      'test','one' 
     ] 

     myfile = open('testingcsv', 'w') 
     wr = csv.writer(myfile, quoting=csv.QUOTE_ALL) 
     wr.writerow(mylist) 

     resp.status = falcon.HTTP_200 
     resp.content_type = 'text/csv' 
     resp.body = (wr) 

我不明白这个错误。

+2

您试图发送实际的CSV编写器对象在您的响应。你很可能想发送你的数据。 –

回答

0

你的问题在于你如何在注释中提到的调用CSV编写器对象。您应该使用“with”语句打开新的csv文件,这可确保在完成后关闭它。您的csv文件未被指定为* .csv文件(缺少句点)。您也可以将其设置为一种方法,将您的列表传递到方法中,而不是在方法中创建。

我希望这些建议有帮助。

def on_get(filename, retrievedData) : 
    with open(filename, 'w') as csvfile: 
     dataWriter = csv.writer(csvfile, delimiter=',', quotechar='|', quoting=csv.QUOTE_MINIMAL) 
     dataWriter.writerow(retrievedData) 

retrievedData = ['test','one'] 

on_get('testing.csv', retrievedData) 
相关问题