x =[]
x.append({"name":"apple",'level':1,"id":1,"parent_id":0})
x.append({"name":"apple",'level':1,"id":1,"parent_id":0})
x.append({"name":"apple",'level':2,"id":2,"parent_id":1})
x =[dict(t)for t inset([tuple(d.items())for d in x])]
dict 类型的 list 转树形结构
import copy
deftreeify(lst):
tree = get_children(0, lst)return tree
defget_children(parent_id,list):
result =[]for item inlist:
node = copy.deepcopy(item)if parent_id == item['parent_id']:
children = get_children(item['id'],list)
node['children']= children
result.append(node)return result
if __name__ =='__main__':
x =[]
x.append({'name':'2','level':2,'no':'002','id':8,'parent_id':1})
x.append({'name':'4','level':4,'no':'004','id':56,'parent_id':9})
x.append({'name':'3','level':3,'no':'003','id':9,'parent_id':8})
x.append({'name':'1','level':1,'no':'001','id':1,'parent_id':0})
x.append({'name':'5','level':5,'no':'005','id':689,'parent_id':56})# 1.删除重复的数据
x =[dict(t)for t inset([tuple(d.items())for d in x])]# 2.转为树形结构
tree = treeify(x)print(tree)