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 では ['1'] であり、ループ 2 では ['1']['2'] である必要があります。

問題は、いくつかの数字を取得し、それらの数字の1つが、変数に応じて、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 に答える