2013-03-14 15 views
0
a={'1':{'2':{'3':'4'}}} 

for something in range(0,some_input): # a forloop 
    print something_x 

我需要「打印something_x」是這樣..蟒JSON對象動態層級

for loop1 -> {'2':{'3':'4'}} 
for loop2 -> {'3':'4'} 
for loop3 -> {'4'} 

的something_x必須是一個[「1」]中環1和[」 1'] ['2']在循環2中,等等

問題是我得到了一些數字,其中一個數字告訴我,我需要替換/編輯/添加取決於json對象的層次結構在變量上。

我可以嘗試創建副本的,然後替換那些或嘗試遞歸的方式,但我可能會CTRL + C中斷,不希望鬆散的數據我已經編輯到現在爲止

我也有試過通過創建變量名動態像

zzz="a['1']['2']" 
    eval(zzz) 

我知道這是不是做

反正是有動態添加JSON對象的關鍵盈的最佳方式?

+0

你可能想看看http://stackoverflow.com/questions/3229419/pretty-printing-nested-dictionaries-in-python以及http://stackoverflow.com/questions/635483/what-is -the條最佳方式對實施-嵌套的字典式的Python – 2013-03-14 17:47:11

回答

0

在你的具體的例子,你可以使用一個指針指向更深,更深的字典:

In [33]: a = {'1': {'2': {'3': '4'}}} 

In [34]: pointer = a 

In [35]: for key in range(1, 4): 
    ....:  print pointer[str(key)] 
    ....:  pointer = pointer[str(key)] 
    ....: 
{'2': {'3': '4'}} 
{'3': '4'} 
4 

不知道大局觀是什麼(這是什麼有JSON做的)。