【发布时间】:2019-06-13 11:29:08
【问题描述】:
我有 4 个字典,其中一些字段不在所有 4 个中。我收到此错误
ValueError: dict contains fields not in fieldnames: 'from', 'Command'
在阅读了一些文档后,我发现了 DictWriter 的 extrasaction='ignore' 参数,但它在 CSV 文件中遗漏了一些字段。 我需要 CSV 文件中的所有字段,即使它们对于某些字典是空的。据我了解,它只是打印公共字段。
字典是:
{'Command': 'DELETE', 'table': 'abc', 'from': 'abc', 'where_expr': 'c = book'}
{'Command': 'SELECT', 'columns': 'a b', 'table': 'tab1', 'from': 'tab1'}
{'Command': 'INSERT', 'table': 'xyz', 'into': 'xyz', 'columns': 'pencil pen', 'values': '200 20'}
{'Command': 'UPDATE', 'table': 'Student', 'columns': 'NAME', 'values': 'PRATIK', 'where_expr': 'a = 100'}
由于错误,我已包含额外内容。
with open('del.csv', 'w') as f:
write = csv.DictWriter(f, dict4.keys(),extrasaction='ignore')
write.writeheader()
write.writerow(dict5)
write.writerow(dict6)
write.writerow(dict7)
write.writerow(dict8)
输出类似于: (我用逗号分隔字段。空格表示空字段(它们没有值))
表|列|值| where_expr
abc, , ,c = 书
tab1,a b, , ,
xyz,铅笔,200 20,
学生,姓名,PRATIK,a = 100
已编辑:所需的输出是: (空格表示空白字段)我希望我可以发布 CSV 文件。
Command|Table|Columns|From|Where_expr|Into|Values
DELETE,abc, ,abc,c = 书, , ,
SELECT,tab1, a b,tab1, , , ,
INSERT,xyz,铅笔, , ,xyz, 200 20
更新, 学生, 姓名, ,a = 100, , PRATIK
【问题讨论】:
-
发布所需的输出
-
张贴@RomanPerekhrest
-
我们可以有另一个字段顺序吗?
-
是的,订单没有问题
标签: python csv dictionary