0
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'}

something_x 必须是循环 1 中的 a['1'] 和循环 2 中的 a['1']['2'] 等等

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

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

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

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

我知道这不是最好的方法

无论如何要在json对象的前面动态添加一个键?

4

1 回答 1

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

于 2013-03-14T17:51:48.167 回答