python - 在 csv 文件中编写字典:添加列名
问题描述
我想添加标题,然后为第一列添加键和为第二列添加值
我该怎么做,我试过这个:
d = {}
with open(sys.argv[1], 'r', encoding='utf-8') as csv_file:
csv_file.readline()
for line in csv_file:
token = line.split(';')
try:
d[token[0]] = token[1]
except:
print(line)
#print(d)
CSV ="\n".join([k+';'+v for k,v in d.items()])
w=csv.DictWriter(open("sortie.csv", "w"), fieldnames =["clé","verbatim","tag","lemme","scorePos","scoreNeu","scoreNeg"],delimiter = ';')
w.writeheader()
w.writerow(CSV)
结果是:
import TreeTagger OK
Traceback (most recent call last):
File "CSV_dico.py", line 47, in <module>
w.writerow(CSV)
File "C:\Users\Emmanuelle\AppData\Local\Programs\Python\Python37-32\lib\csv.py", line 155, in writerow
return self.writer.writerow(self._dict_to_list(rowdict))
File "C:\Users\Emmanuelle\AppData\Local\Programs\Python\Python37-32\lib\csv.py", line 148, in _dict_to_list
wrong_fields = rowdict.keys() - self.fieldnames
AttributeError: 'str' object has no attribute 'keys'
解决方案
看看DictWriter如何期待它的输入。您正在尝试将整个 CSV 作为单行传递。
实际上,由于您已经生成了整个 CSV,您可以手动编写标题,然后手动编写行:
with open("sortie.csv", "w") as output:
output.write("clé;verbatim;tag;lemme;scorePos;scoreNeu;scoreNeg\n")
output.write(CSV)
推荐阅读
- python - 当有许多可能的 POS 标签时,查找单词形式的总数
- mysql - 以总库存显示库存中的所有组件
- php - 通过 PHP 执行 shell 命令?
- c++ - 初级 5 版。来自自定义删除函数的 unique_ptr 构造函数
- uinavigationbar - 自定义 MFMailComposeViewController
- php - 如何在 Zend 3 中将变量从控制器传递到布局(不是视图)
- python - 解析 MariaDB 上产品的价格变化并将差异保存到产品表
- pdf - iPad:无法移过 PDF 的第一页
- office365 - Office 365 REST 报告过去几个小时内的 Web 服务错误
- c - 如何用一个函数获得一个没有重复值的数组