python json添加元素_在python中向json添加节点

我尝试使用以下代码在python中生成自定义JSONroot={}

Levels=[['L1','L1','L2'],

['L1','L1','L3'],

['L1','L2'],

['L2','L2','L3'],

['L2','L2','L1'],

['L3','L2'],

['L4','L2','L1'],

['L4','L2','L4']]

def append_path(root, paths):

if paths:

child = root.setdefault(paths[0], {})

append_path(child, paths[1:])

for p in Levels:

append_path(root, p)

def convert(d):

templist=[]

noofchildren=0

if(len(d.items())==0):

return ([{}],1)

for k,v in d.items():

temp,children=convert(v)

noofchildren+=children

if(temp):

templist.append({"name":k+"("+str(children)+")",'children':temp})

else:

templist.append({'name': k+"("+str(children)+")", 'children':[{}]})

return (templist,noofchildren)

# Print results

import json

print(json.dumps(convert(root)[0], indent=2))

输出是

^{pr2}$

我的数据集有点变化Levels=[[['L1','L1','L2'],[10,20,30]],

[[['L1','L1','L3'],[10,15,20]],

[[['L1','L2'],[20,10]],

[[['L2','L2','L3'],[20,20,30]],

[[['L2','L2','L1'],[10,20,30]]

[[['L3','L2'],[10,20]]

[[['L4','L2','L1'],[10,20,10]]

[[['L4','L2','L4'],[20,40,50]]]

我想要的输出是水平和计数的平均值[

{

"name": "L1(3)#(13)", // taking avg of 10,10,20

"children": [

{

"name": "L1(2)#(17)", // taking avg of 20,15

"children": [

{

"name": "L2(1)#(30)",

"children": [

{}

]

},

{

"name": "L3(1)#(20)",

"children": [

{}

]

}

]

},

{

"name": "L2(1)#10",

"children": [

{}

]

}

]

},

{

"name": "L2(2)#(15)", // avg of 20,10

"children": [

{

"name": "L2(2)#(20)", // avg of 20,20

"children": [

{

"name": "L3(1)#(30)",

"children": [

{}

]

},

{

"name": "L1(1)#(30)",

"children": [

{}

]

}

]

}

]

},

{

"name": "L3(1)#(10)",

"children": [

{

"name": "L2(1)#(10)",

"children": [

{}

]

}

]

},

{

"name": "L4(2)#(15)",// avg of 10,20

"children": [

{

"name": "L2(2)#(30)", // avg of 20,40

"children": [

{

"name": "L1(1)# (10)",

"children": [

{}

]

},

{

"name": "L4(1)#(50)",

"children": [

{}

]

}

]

}

]

}

]

如何更改代码以添加此信息?在

你可能感兴趣的:(python,json添加元素)