首页 > 解决方案 > Python 只将字典的键写入 csv 文件

问题描述

该代码从输入中获取名称和密码的输入,然后将用户名和密码转换为字典

dicReg = {username: pw}

当我现在打印 dicReg 时,我得到了一个普通的字典。

{'foo': 'bar'}

现在我想将字典添加到 csv 文件中,代码运行时没有任何错误

with open('data.csv', 'a') as fp:
    writer = csv.DictWriter(fp, dicReg)
    writer.writerow(dicReg)

但是当我稍后打开 csv 文件时,它只显示字典的键

输出示例:

{'foo': 'bar'}
{'spam': 'eggs'}

https://prnt.sc/pawolz

标签: pythoncsvdictionary

解决方案


您只能使用 获取字典值.writerow()。要将键作为标题行,请使用.writeheader()

import csv
dicReg = {'foo':'bar','foo2':'bar2'}
with open('data.csv','w',newline='') as fp:
    writer = csv.DictWriter(fp,dicReg)
    writer.writeheader()
    writer.writerow(dicReg)

输出:

foo,foo2
bar,bar2

相反,如果您希望将键和值作为列,则不需要 DictWriter:

import csv
dicReg = {'foo':'bar','foo2':'bar2'}
with open('data.csv','w',newline='') as fp:
    writer = csv.writer(fp)
    for k,v in dicReg.items():
        writer.writerow([k,v])

输出:

foo,bar
foo2,bar2

推荐阅读