DictWriter()参数错误

0 投票
1 回答
874 浏览
提问于 2025-04-18 08:56

我正在尝试把JSON格式的数据写入CSV文件:

with open('data.csv', 'w') as output_file:
        print 'output:', output_file
        output = csv.DictWriter(output_file, order_fields = sorted(fieldnames), restval = '')
        output.writeheader()
        output.writerow()

但是遇到了这个错误:

  File "process_json.py", line 16, in main
    output = csv.DictWriter(output_file, order_fields = sorted(fieldnames), restval = '')
TypeError: __init__() takes at least 3 arguments (3 given)

那我应该传递什么参数呢,如果不是这些?

1 个回答

1

如果你查看一下DictWriter的用法说明

csv.DictWriter(csvfile, fieldnames, restval='', extrasaction='raise', dialect='excel', *args, **kwds)

你会发现你忘记传递fieldnames这个参数了。实际上,你传了三个参数(包括self,因为这是一个类),但你忘了这个第二个参数,它是必须的。
我觉得你想说的不是order_fields,而是fieldnames,所以你不需要把它作为位置参数来设置:

output = csv.DictWriter(output_file, sorted(fieldnames), restval = '')

撰写回答