您的位置:首頁技術文章
文章詳情頁

tree - 利用python如何將無限分類結構的數據,轉換成json格式數據。

瀏覽:99日期: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 編程
国产综合久久一区二区三区