python json对象动态层次结构级别

时间:2013-03-14 17:40:32

标签: python json

a={'1':{'2':{'3':'4'}}}

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

我需要“print something_x”这样......

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

在循环1中,something_x必须是['1'],在循环2中必须是['1'] ['2'],依此类推

问题是我得到了一些数字,其中一个数字告诉我json对象中的层次结构需要根据变量替换/编辑/添加。

我可以尝试创建副本然后替换它们或尝试递归方式但我可能会得到ctrl + c中断并且不想丢失我已经编辑过的数据直到现在

我也试过动态创建变量名称,如

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

我知道这不是最好的方法

无论如何都要动态添加json对象前面的键吗?

1 个答案:

答案 0 :(得分:0)

在您的具体示例中,您可以使用指向更深入和更深入dict的指针:

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有什么关系)。