pythonjson修改嵌套内容_在Python中使用递归函数更改嵌套json文件中的值

嗨,我想创建一个递归函数,它可以从一个嵌套的json文件中提取一个字典,然后将json文件中某个属性(属性权重)的所有值乘以10。在

我知道可以用其他方法来解决这个问题(例如regex),但我这样做是为了提高我编写递归函数的能力,所以我想找到一个递归的解决方案。在

输入json文件示例:{

"name": "Entire genepool",

"children": [{

"name": "child1",

"weight": 80,

"children": [{

"name": "childAA",

"weight": 100,

"children": [{

"name": "childCC",

"weight": 60,

"children": []

}, {

"name": "grandchild",

"weight": 40,

"children": []

}]

}]

}, {

"name": "childb",

"weight": 20,

"children": []

}]

}

到目前为止我所做的(Python 2.7),它不起作用,它返回一个空列表,我添加了一个print语句来可视化输入字典是如何通过递归变化的:

^{pr2}$

打开文件并将其转换为字典并调用函数with open("tree_rec.json", "r") as f:

tree_dic = json.load(f)

recur(tree_dic)

每次递归的输入{u'name': u'Entire genepool', u'children': [{u'name': u'child1', u'weight': 80, u'children': [{u'name': u'childAA', u'weight': 100, u'children': [{u'name': u'childCC', u'weight': 60, u'children': []}, {u'name': u'grandchild', u'weight': 40, u'children': []}]}]}, {u'name': u'childb', u'weight': 20, u'children': []}]}

[{u'name': u'child1', u'weight': 80, u'children': [{u'name': u'childAA', u'weight': 100, u'children': [{u'name': u'childCC', u'weight': 60, u'children': []}, {u'name': u'grandchild', u'weight': 40, u'children': []}]}]}, {u'name': u'childb', u'weight': 20, u'children': []}]

[{u'name': u'childAA', u'weight': 100, u'children': [{u'name': u'childCC', u'weight': 60, u'children': []}, {u'name': u'grandchild', u'weight': 40, u'children': []}]}]

[{u'name': u'childCC', u'weight': 60, u'children': []}, {u'name': u'grandchild', u'weight': 40, u'children': []}]

[]

它返回一个空列表:[]

  • 0
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 0
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值