pygrametl CSVSource TypeError: init() takes at least 2 arguments (1 given)
pygrametl CSVSource TypeError: init() takes at least 2 arguments (1 given)
我正在尝试使用 documentation
中所示的 pygrametl CSVSource
这是我的代码
import pygrametl
from pygrametl.datasources import CSVSource
src = CSVSource(csvfile=open('src.csv', 'r', 16384), \
delimiter=',')
但是即使我使用了正确的代码,我仍然收到以下错误。
TypeError: init() takes at least 2 arguments (1 given)
我该如何解决这个问题?
从您提到的文档中,我们可以看到 CSVSource
只是对 csv
模块中的 DictReader
的引用。
如果我们查看 DictReader
class 的源代码(准确地说是 __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
由于输入参数中没有关键字 csvfile
,因此将此参数传递给 **kwds
,这意味着缺少参数 f
。我没有安装这个库,但我认为只传递 open('src.csv', 'r', 16384)
而不传递 csvfile=
将解决这个问题。像这样:
import pygrametl
from pygrametl.datasources import CSVSource
src = CSVSource(open('src.csv', 'r', 16384), delimiter=',')
更新:刚刚安装了 pygrametl
并在没有 csvfile=
的情况下进行了测试,它工作正常。
我正在尝试使用 documentation
中所示的 pygrametl CSVSource这是我的代码
import pygrametl
from pygrametl.datasources import CSVSource
src = CSVSource(csvfile=open('src.csv', 'r', 16384), \
delimiter=',')
但是即使我使用了正确的代码,我仍然收到以下错误。
TypeError: init() takes at least 2 arguments (1 given)
我该如何解决这个问题?
从您提到的文档中,我们可以看到 CSVSource
只是对 csv
模块中的 DictReader
的引用。
如果我们查看 DictReader
class 的源代码(准确地说是 __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
由于输入参数中没有关键字 csvfile
,因此将此参数传递给 **kwds
,这意味着缺少参数 f
。我没有安装这个库,但我认为只传递 open('src.csv', 'r', 16384)
而不传递 csvfile=
将解决这个问题。像这样:
import pygrametl
from pygrametl.datasources import CSVSource
src = CSVSource(open('src.csv', 'r', 16384), delimiter=',')
更新:刚刚安装了 pygrametl
并在没有 csvfile=
的情况下进行了测试,它工作正常。