0

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)

エラーがわかりません。

4

1 に答える 1

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)
于 2015-06-22T16:38:37.630 に答える