假設我有這本詞典:
temp = {"a": {"b": {"c": 123} } }
我有以下平面 JSON 鍵和新值:
flat = "a.b.c"
new_val = 456
我想用新的值更改嵌套的 dict 值。如何將 轉換"a.b.c"為temp["a"]["b"]["c"]?
請注意,我不知道 JSON 密鑰中的層數,它可以是"a.b.c.d.f",也可以只是"a".
uj5u.com熱心網友回復:
您需要迭代不同的鍵(執行最后一個)以到達最終字典,然后更新值
def update_dict_dot(values, key: str, val):
keys = key.split(".")
x = values
for key in keys[:-1]:
x = x[key]
x[keys[-1]] = val
temp = {"a": {"b": {"c": 123}}}
print(temp) # {'a': {'b': {'c': 123}}}
update_dict_dot(temp, "a.b.c", 456)
print(temp) # {'a': {'b': {'c': 456}}}
uj5u.com熱心網友回復:
就像這里提到的@rdas 是這樣做的代碼
temp = {"a": {"b": {"c":{"d": 123} } } }
flat = "a.b.c.d"
new_val = 456
split_val = flat.split('.')
trav_data = temp
for keys in split_val:
trav_data = trav_data[keys]
print(trav_data)
輸出
123
轉載請註明出處,本文鏈接:https://www.uj5u.com/qukuanlian/362940.html
