gpt4 book ai didi

python - pygrametl CSVSource类型错误: init() takes at least 2 arguments (1 given)

转载 作者:太空宇宙 更新时间:2023-11-03 15:50:44 25 4
gpt4 key购买 nike

我正在尝试使用 pygrametl CSVSource,如 documentation 中所示

这是我的代码

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 类的源代码(准确地说,它是 __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= 的情况下进行了测试,它工作正常。

关于python - pygrametl CSVSource类型错误: init() takes at least 2 arguments (1 given),我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/41321096/

25 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com