从CSV文件创建字典?

从CSV文件创建字典?

我正在尝试从CSV文件创建一个字典。CSV文件的第一列包含唯一的键,第二列包含值。CSV文件的每一行表示字典中唯一的键值对。我试着用csv.DictReadercsv.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文件创建一个字典?谢谢。



阿晨1998
浏览 461回答 3
3回答

手掌心

我相信你正在寻找的语法如下:with&nbsp;open('coors.csv',&nbsp;mode='r')&nbsp;as&nbsp;infile: &nbsp;&nbsp;&nbsp;&nbsp;reader&nbsp;=&nbsp;csv.reader(infile) &nbsp;&nbsp;&nbsp;&nbsp;with&nbsp;open('coors_new.csv',&nbsp;mode='w')&nbsp;as&nbsp;outfile: &nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;writer&nbsp;=&nbsp;csv.writer(outfile) &nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;mydict&nbsp;=&nbsp;{rows[0]:rows[1]&nbsp;for&nbsp;rows&nbsp;in&nbsp;reader}或者,对于python<=2.7.1,您需要:mydict&nbsp;=&nbsp;dict((rows[0],rows[1])&nbsp;for&nbsp;rows&nbsp;in&nbsp;reader)

婷婷同学_

通过调用open,然后csv.DictReader.input_file&nbsp;=&nbsp;csv.DictReader(open("coors.csv"))您可以通过迭代INPUT_FILE来遍历CSV文件dict Reader对象的行。for&nbsp;row&nbsp;in&nbsp;input_file: &nbsp;&nbsp;&nbsp;&nbsp;print&nbsp;row或者只访问第一行dictobj&nbsp;=&nbsp;csv.DictReader(open('coors.csv')).next()
打开App,查看更多内容
随时随地看视频慕课网APP

相关分类

Python