将新元素添加到字典中

时间:2013-06-28 15:52:33

标签: python csv dictionary

我想将我的csv.reader中的内容转换为字典。我实施了此帖Add new keys to a dictionary?中的说明,但我不断获得IndexError: list index out of range。我该如何解决这个问题?

import wx
import csv

info = csv.reader(open('report.csv', 'rb'),delimiter=',')

length = 0
info_list = []

for row in info: #search each row in the report
    info_list.append([length,row[1],row[4]])
    length = length + 1

print length
dict_info = {}
rows = 0
counter = 0

while counter < length:
    for item in info_list:
        dict_info[item[rows]] = [item[rows + 1], item[rows + 2]]
    rows = rows + 3
    counter = counter + 1
print dict_info

3 个答案:

答案 0 :(得分:0)

for index, row in enumerate(info):
    dict_info[index] = [row[1], row[4]]

答案 1 :(得分:0)

导入集合

d = collections.OrderedDict()

info = csv.reader(open('report.csv','rb'),delimiter =',')

d = {row [0]:row [1] .strip()for info in info}

表示some1,d.items()中的some2:

而不是写其他所有内容

答案 2 :(得分:0)

我认为你要做的是:

import csv

info = csv.reader(open('report.csv', 'rb'),delimiter=',')
dict_info = {row[0]:[row[1], row[4]] for row in info}
print dict_info

如果您希望索引是文件的行号,那么您应该将其保留为列表。

import csv

info = csv.reader(open('report.csv', 'rb'),delimiter=',')
list_info = [[row[1], row[4]] for row in info]
print list_info