我需要为嵌套字典中的每个项添加一个值增加1的键 . 我一直在尝试使用 dict['key']='value'
语法,但可以't get it to work for a nested dictionary. I'确定它非常简单 .
我的词典:
mydict={'a':{'result':[{'key1':'value1','key2':'value2'},
{'key1':'value3','key2':'value4'}]}}
这是将密钥添加到字典主要部分的代码:
for x in range(len(mydict)):
number = 1+x
str(number)
mydict[d'index']=number
print mydict
#out: {d'index':d'1',d'a'{d'result':[...]}}
我想将新的键和值添加到方括号内的小字典中:
{'a':{'result':[{'key1':'value1',...,'index':'number'}]}}
如果我尝试在 for loop
的最后一行添加更多图层,我会收到一个回溯错误:
Traceback (most recent call last):
File "C:\Python27\program.py", line 34, in <module>
main()
File "C:\Python27\program.py", line 23, in main
mydict['a']['result']['index']=number
TypeError: list indices must be integers, not unicode
我已经尝试了各种不同的方式列出嵌套项目但没有快乐 . 有人可以帮我从这里出去吗?
2 回答
我想尝试做,但我认为
itertools.count
能够在这里提供帮助 .... 等等 .
使用此方法,您可以继续增加要在
dict
中使用的值希望这可以帮助
问题是
mydict
不仅仅是嵌套字典的集合 . 它也包含一个列表 . 打破定义有助于澄清内部结构:因此,要访问最内层的值,我们必须这样做 . 向后工作:
返回
resultdict
. 然后这个:返回
dictlist
. 然后这个:返回
dictlist
中的第一项 . 最后,这个:返回
'value1'
所以现在你只需修改你的
for
循环就能在mydict
上正确迭代 . 可能有更好的方法,但这是第一种方法: