2015-06-21 100 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) 
相關問題