如何在词典中将dict {key:value}放入其中指定的键,以便在计算值后为{key:{key:value}}

时间:2016-07-08 14:30:54

标签: python python-2.7 csv dictionary

我有一个csv文件,我试图计算row[3],然后将其与row[0]连接

 row[0]      row[3]
 'A01'          'a'
 'B02'          'a'
 'A01'          'b'
 'A01'          'a'
 'B02'          'a'
 'A01'          'a'

所以最终它应该是

 {'A01':{a:3, b:1, 'B02':{a,2}}

到目前为止我有这个代码:

d = {'job': {'general_types': 0}}
d['job'] ={}
d['general_types'] ={}
with open("sample.csv", "r") as data1:
    outcome_reader = csv.reader(data1)
    for rows in outcome_reader:
        d['job'].setdefault(rows[0])
        d['general_type'].setdefault(rows[3],0)
        d['general_type'][rows[3]] += 1

目前我正在获得KeyError: 'general_type'

1 个答案:

答案 0 :(得分:2)

只要您从不存在的字典中请求密钥,就会引发KeyError

您似乎正在将密钥声明为'general_types',然后通过名称'general_type'请求密钥。试试这个:

d['general_types'].setdefault(rows[3],0)
d['general_types'][rows[3]] += 1