2016-12-25 17 views
1

を取る私はdocumentationpygrametl CSVSource例外TypeErrorます。init()は、少なくとも2つの引数(1は、与えられた)

に示すように、これは私のコード

import pygrametl 
from pygrametl.datasources import CSVSource 

src = CSVSource(csvfile=open('src.csv', 'r', 16384), \ 
          delimiter=',') 

ですが、私が手pygrametl CSVSourceを使用しようとしています正確なコードを使用してもエラーが発生します。

TypeError: init() takes at least 2 arguments (1 given)

どうすればこの問題を解決できますか?

答えて

0

上記のドキュメントから、CSVSourceDictReadercsvモジュールを参照していることがわかります。

我々はDictReaderクラスのソースコードを見れば(それは正確には__init__方法です)、私たちはこの参照してください。

class DictReader: 
    def __init__(self, f, fieldnames=None, restkey=None, restval=None, 
        dialect="excel", *args, **kwds): 
     self._fieldnames = fieldnames # list of keys for the dict 
     self.restkey = restkey   # key to catch long rows 
     self.restval = restval   # default value for short rows 
     self.reader = reader(f, dialect, *args, **kwds) 
     self.dialect = dialect 
     self.line_num = 0 

をnoキーワードcsvfile、入力引数ではありませんので、この引数が渡されましたを意味する、**kwdsにはありません。私はこのライブラリをインストールしていませんが、csvfile=なしでopen('src.csv', 'r', 16384)を渡すだけでこの問題が解決されると思います。このような何か:

import pygrametl 
from pygrametl.datasources import CSVSource 

src = CSVSource(open('src.csv', 'r', 16384), delimiter=',') 

更新:ただcsvfile=なしpygrametlをインストールしてテストしたが、それが正常に動作します。

+0

ありがとうFejs :) – SaikiHanee

関連する問題