【发布时间】:2011-10-08 03:04:50
【问题描述】:
我正在尝试从 csv 文件创建字典。 csv 文件的第一列包含唯一键,第二列包含值。 csv 文件的每一行代表字典中唯一的键值对。我尝试使用csv.DictReader 和csv.DictWriter 类,但我只能弄清楚如何为每一行生成一个新字典。我想要一本字典。这是我尝试使用的代码:
import csv
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)
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 文件创建一个字典?谢谢。
【问题讨论】:
-
你能举一个输入文件和结果数据结构的例子吗?
-
当您遍历 csv.reader 时,您会得到单行,而不是行。因此,有效形式是 mydict = {k:v for k,v in reader} 但如果您确定 csv 文件中只有两列,那么 mydict = dict(reader) 会快得多。
标签: python csv dictionary list-comprehension