DictWriter()参数错误
我正在尝试把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 = '')