我有一个CSV文件,我已经过滤到列表中并进行了分组。例如:Python - 嵌套字典。错误在哪里?
52713
['52713', '', 'Vmax', '', 'Start Value', '', '\n']
['52713', '', 'Vmax', '', 'ECNumber', '1.14.12.17', '\n']
['52713', 'O2', 'Km', 'M', 'Start Value', '3.5E-5', '\n']
['52713', 'O2', 'Km', 'M', 'ECNumber', '1.14.12.17', '\n']
52714
['52714', '', 'Vmax', '', 'Start Value', '', '\n']
['52714', '', 'Vmax', '', 'ECNumber', '1.14.12.17', '\n']
['52714', 'O2', 'Km', 'M', 'Start Value', '1.3E-5', '\n']
['52714', 'O2', 'Km', 'M', 'ECNumber', '1.14.12.17', '\n']
从此,我创建了一个嵌套的字典结构为:
dict = ID number:{Km:n, Kcat:n, ECNumber:n}
...在列表中的每个ID。
我使用下面的代码来创建此字典
dict = {}
for key, items in groupby(FilteredTable1[1:], itemgetter(0)):
#print key
for subitem in items:
#print subitem
dict[subitem[EntryID]] = {}
dict[subitem[EntryID]]['EC'] = []
dict[subitem[EntryID]]['Km'] = []
dict[subitem[EntryID]]['Kcat'] = []
if 'ECNumber' in subitem:
dict[subitem[EntryID]]['EC'] = subitem[value]
if 'Km' in subitem and 'Start Value' in subitem:
dict[subitem[EntryID]]['Km'] = subitem[value]
#print subitem
该方法适用于ECNumber价值,而不是Km值。它可以打印该行,显示它将Km值标识为存在,但不会放入字典中。
输出示例:
{'Km': [], 'EC': '1.14.12.17', 'Kcat': []}
任何想法?
本
为什么downvote它,然后留下任何解释?答案简单吗? – 2015-03-13 15:21:33
'价值'的内容是什么? – Matthias 2015-03-13 15:24:52
@Matthias只是列表的索引。在这种情况下,整数6.我试图用6替换值。没有运气。 – 2015-03-13 15:30:58