为了账号安全,请及时绑定邮箱和手机立即绑定

从CSV文件创建字典?

从CSV文件创建字典?

阿晨1998 2019-07-22 20:05:38
从CSV文件创建字典?我正在尝试从CSV文件创建一个字典。CSV文件的第一列包含唯一的键,第二列包含值。CSV文件的每一行表示字典中唯一的键值对。我试着用csv.DictReader和csv.DictWriter类,但我只能知道如何为每一行生成一个新字典。我想要一本字典。下面是我试图使用的代码:import csvwith open('coors.csv', mode='r') as infile:     reader = csv.reader(infile)     with open('coors_new.csv', mode='w') as outfile:     writer = csv.writer(outfile)     for rows in reader:         k = rows[0]         v = rows[1]         mydict = {k:v for k, v in rows}     print(mydict)当我运行上面的代码时,我会得到一个ValueError: too many values to unpack (expected 2)..如何从CSV文件创建一个字典?谢谢。
查看完整描述

3 回答

?
手掌心

TA贡献1942条经验 获得超3个赞

我相信你正在寻找的语法如下:

with open('coors.csv', mode='r') as infile:
    reader = csv.reader(infile)
    with open('coors_new.csv', mode='w') as outfile:
        writer = csv.writer(outfile)
        mydict = {rows[0]:rows[1] for rows in reader}

或者,对于python<=2.7.1,您需要:

mydict = dict((rows[0],rows[1]) for rows in reader)


查看完整回答
反对 回复 2019-07-22
?
婷婷同学_

TA贡献1844条经验 获得超8个赞

通过调用open,然后csv.DictReader.

input_file = csv.DictReader(open("coors.csv"))

您可以通过迭代INPUT_FILE来遍历CSV文件dict Reader对象的行。

for row in input_file:
    print row

或者只访问第一行

dictobj = csv.DictReader(open('coors.csv')).next()


查看完整回答
反对 回复 2019-07-22
  • 3 回答
  • 0 关注
  • 456 浏览
慕课专栏
更多

添加回答

举报

0/150
提交
取消
意见反馈 帮助中心 APP下载
官方微信