如何解决在CSV中DictWriter使用打印格式不起作用-python
以下示例似乎无效
import csv
values = [{'emp_name': 'John Wick','dept': 'Accounting','val': '10'},{'emp_name': 'Neo Anderson','dept': 'IT','val': '20'}]
with open('file1.csv',mode='w') as csv_file:
fieldnames = ['name','department']
writer = csv.DictWriter(csv_file,fieldnames=fieldnames)
for value in values:
writer.writerow({"'name': '{emp_name}','department': '{dept}'".format(
**value)
})
错误:
Traceback (most recent call last):
File "csv_test.py",line 13,in <module>
**value)
File "python-3.7.5/lib/python3.7/csv.py",line 155,in writerow
return self.writer.writerow(self._dict_to_list(rowdict))
File "python-3.7.5/lib/python3.7/csv.py",line 148,in _dict_to_list
wrong_fields = rowdict.keys() - self.fieldnames
AttributeError: 'set' object has no attribute 'keys'
预期输出:
name,department
John Wick,Accounting
Neo Anderson,IT
是否有很好的解决方法?
解决方法
使用dict
时使用通过writerow
例如:
import csv
values = [{'emp_name': 'John Wick','dept': 'Accounting'},{'emp_name': 'Neo Anderson','dept': 'IT'}]
with open('file1.csv',mode='w') as csv_file:
fieldnames = ['emp_name','dept']
writer = csv.DictWriter(csv_file,fieldnames=fieldnames)
for value in values:
writer.writerow({"emp_name": value['emp_name'],"dept": value['dept']}) #Pass the dict
版权声明:本文内容由互联网用户自发贡献,该文观点与技术仅代表作者本人。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如发现本站有涉嫌侵权/违法违规的内容, 请发送邮件至 dio@foxmail.com 举报,一经查实,本站将立刻删除。