TypeError:类型' _csv.writer'的对象没有len()

时间:2015-06-21 05:36:17

标签: python python-3.x falconframework

我正在尝试编写csv文件并将其返回到响应正文中,但我正在

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)

我不明白错误。

1 个答案:

答案 0 :(得分: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)