DictWriter()的错误参数

时间:2014-06-06 22:29:20

标签: python csv

我正在尝试将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 个答案:

答案 0 :(得分:1)

如果你看signature of DictWriter

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

您将看到忘记传递fieldnames参数。实际上,你传递了3个参数(包括self,因为它是一个类),但你忘记了第二个参数,这是强制性的。
我认为它不是order_fields而是fieldnames,所以你不需要将它设置为位置参数:

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