tag = [{'id': 1, 'name': 'xa', 'code': '1000', 'parentCode': 'null'},
{'id': 2, 'name': 'xb', 'code': '1010', 'parentCode': '1000'},
{'id': 3, 'name': 'xc', 'code': '1011', 'parentCode': '1000'},
{'id': 4, 'name': 'xd', 'code': '1111', 'parentCode': '1011'},
{'id': 5, 'name': 'xe', 'code': '1112', 'parentCode': '1011'},
{'id': 6, 'name': 'xf', 'code': '2000', 'parentCode': 'null'},
{'id': 7, 'name': 'xg', 'code': '2010', 'parentCode': '2000'},
{'id': 8, 'name': 'xh', 'code': '2111', 'parentCode': '2010'}]
def one(tag):
pl =[]
for i in tag:
if i['parentCode'] == 'null':
i['children'] = two(tag,i)
pl.append(i)
print(pl)
def two(tag,parent):
cl=[]
for i in tag :
if i['parentCode'] == parent['code']:
cl.append(i)
i['children'] = two(tag,i)
return cl
one(tag)