您的位置:首页技术文章
文章详情页

tree - 利用python如何将无限分类结构的数据,转换成json格式数据。

浏览:103日期:2022-09-06 18:46:57

问题描述

id text pid

1 My Documents 02 photos 13 Friend 24 Wife 25 Company 26 Program Files 17 Intel 68 Java 6

数据库中是以上结构,如何写段代码生成如下结构的json数据?

[{

'id':1,'text':'My Documents','children':[{ 'id':2, 'text':'Photos', 'children':[{'id':3,'text':'Friend' },{'id':4,'text':'Wife' },{'id':5,'text':'Company' }]},{ 'id':6, 'text':'Program Files', 'children':[{'id':7,'text':'Intel' },{'id':8,'text':'Java', }]}]

}]

问题解答

回答1:

import jsonsource=[ {'name':'my document','id':1 , 'parentid': 0 }, {'name':'photos','id':2 , 'parentid': 1 }, {'name':'Friend','id':3 , 'parentid': 2 }, {'name':'Wife','id':4 , 'parentid': 2 }, {'name':'Company','id':5 , 'parentid': 2 }, {'name':'Program Files','id':6 , 'parentid': 1 }, {'name':'intel','id':7 , 'parentid': 6 }, {'name':'java','id':8 , 'parentid': 6 },]def getChildren(id=0): sz=[] for obj in source:if obj['parentid'] ==id: sz.append({'id':obj['id'],'text':obj['name'],'children':getChildren(obj['id'])}) return szprint json.dumps(getChildren())

[ { 'text': 'my document', 'id': 1, 'children': [ {'text': 'photos','id': 2,'children': [ { 'text': 'Friend', 'id': 3, 'children': [ ] }, { 'text': 'Wife', 'id': 4, 'children ': [ ] }, { 'text': 'Company', 'id': 5, 'children': [ ] }] }, {'text': 'Program Files','id': 6,'children': [ { 'text': 'intel', 'id': 7, 'children': [ ] }, { 'text': 'java', 'id ': 8, 'children': [ ] }] } ] }]

代码比较粗糙,性能不好,主要借鉴下思想吧

标签: Python 编程