我需要帮助用变量键更新json - dictionary值。
以下是我所知道的工作和我遇到的问题。
让我说我这样做:
print(my_json['convergedSystem']['endpoints'][0]['credentials'][0]['credentialElements']['username'])
我找回迈克 现在,如果我这样做:
my_json['convergedSystem']['endpoints'][0]['credentials'][0]['credentialElements']['username'] = ‘Carol’
并做同样的印刷:
print(my_json['convergedSystem']['endpoints'][0]['credentials'][0]['credentialElements']['username'])
我回到卡罗尔
这就是我期望它发挥作用的方式。 问题是我并不总是知道上面的索引键是什么或者有多少......但是我可以得到它们的列表。 有时我可能需要更新
my_json['convergedSystem']['endpoints'][0]['credentials'][0]['credentialElements']['username']
其他时候它可能处于不同的水平
my_json['convergedSystem']['credentials'][0]['credentialElements']['username']
甚至
my_json['FullSystem'][switches]['endpoints'][2]['credentials'][0]['credentialElements']['username']
如何在代码中设置? 我将永远有一个列表可供我这样:
['convergedSystem', 'endpoints', 0, 'credentials', 0, 'credentialElements', 'username']
或者在那一刻发生的事情。 我知道我会一直在寻找[' credentialElements'] ['用户名']然而
答案 0 :(得分:0)
假设您的json名称是 my_json ,并且您的列表被命名为 keys ,并且您希望将值更新为 your_updated_value :
val = my_json # val contains reference to your json
for key in keys[0:-1]: # iterate till the second last level
val = val[key]
val[keys[-1]] = your_updated_value # update the value
请注意,由于val具有 my_json 的引用,因此它也会更新 my_json 。