我有一个字典,它有几个选项键-值对,然后有一个sub-dict属性,它是一个具有相同属性的更多字典的列表,这些字典也有可能有sub-dict。在
在python中,我将其分解并单独处理,一次只更改一个,并希望将更改后的系统与整个系统重新组合。不过,我不知道如何迭代它。在
{base_system: {
name: "root",
description: "data dictionary",
common_data: {},
other_data: {},
more_data: {},
sub_systems: [
{
base_system: {
name: "another system",
description: "inherits from top level",
sub_systems: [
{
base_system: {}
},
{
base_system: {}
}
]
}
},
{
base_system: {
name: "one more system",
description: "inheriting again",
sub_systems: [
{
base_system: {
name: "child system",
description: "no kids here",
other_data: {},
more_data: {}
}
},
{
base_system: {
name: "kid system",
description: "no children here"
}
}
]
}
}
]
}
}
我想做这样的事情,但我不知道该怎么做才能使它递归。在
^{pr2}$但是我不确定如何遍历嵌套字典,并且仍然拥有整个对象。在
您可以使用instanceof()方法检查某个内容是否是dict,如果为true,则可以让代码迭代该dict。在这种情况下,我将执行递归。在
下面是递归遍历dict结构的示例代码。对于本例,它将描述替换为描述的大写。在
上面的代码对字典进行了适当的修改。这是一个有点棘手,但并不坏,在你去做一个副本,并返回副本。这可能更好。在
这里唯一棘手的部分是代码默认使用
^{pr2}$copy.deepcopy()
。因为我们不知道字典中可能有什么内容,并且我们想返回一个副本,所以我们可以对所有内容调用copy.deepcopy()
;它将非常简单地工作,并对像3
(值为3的整数对象)这样的简单对象执行正确的操作。在另外,您发布的示例数据不是有效的JSON。我修改了它,在键的两边加上双引号,并用漂亮的缩进打印出来,使我的测试文件
data.json
。这里是:相关问题 更多 >
编程相关推荐