gpt4 book ai didi

python - 使用字符串列表作为键更新嵌套 JSON 文件中的单个值

转载 作者:行者123 更新时间:2023-12-04 07:58:24 42 4
gpt4 key购买 nike

我有一个 JSON 文件,例如:

{
"items": {
"item1": {
"thing1": "SomeValue",
"thing2": "AnotherValue"
},
"item2": {
"thing1": "SomeValue",
"thing2": "AnotherValue"
},
"item3": {
"thing1": {
"moreStuff": "someStuff",
"evenMoreStuff": "someMoreStuff"
}
}
}
}
我想通过将字符串列表作为键传递来创建一个通用函数来更新文件中的单个值。
def update_dict(value, keys):
with open(somePath, "r") as f:
data = json.load(f)

data[keys[0]][keys[1]][keys[2]] = value

with open(somePath, "w") as f:
json.dump(data, f,

value = "AThirdValue"
keys = ["items", "item2", "thing1"]

update_dict(value, keys)
我无法弄清楚的是,如果不知道 key 列表的长度,如何做到这一点。例如,这行不通:
value = "AThirdValue"
keys = ["items", "item3", "thing1", "moreStuff"]
update_dict(value, keys)
我不想使用 if 语句来检查长度,然后如果我添加另一个深度级别,则必须编辑此函数。

最佳答案

您可以使用循环来模拟树行走:

def update_dict(value, keys):
with open(somePath, "r") as f:
data = json.load(f)

point = data
last_key = keys.pop()
for key in keys:
point = point[key]

point[last_key] = value

with open(somePath, "w") as f:
json.dump(data, f)

关于python - 使用字符串列表作为键更新嵌套 JSON 文件中的单个值,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/66589121/

42 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com