hierarchy in json object

Jun 07, 2013 16:55

Кусок кода, который преобразует иерархические данные из табличного вида (id,parent_id,name) в json.



#!/usr/bin/env python

import pprint
import json

global_data = [(1, None, "Big boss"), (2, 1, "Small boss1"), (3, 1, "Small boss2"), (4, 2, "worker1"), (5, 2, "worker2")]

def get_children(parent_id):
global global_data
return [ i for i in global_data if i[1] == parent_id]

def go(parent_id):
children_data = get_children(parent_id)

result = []
for i in children_data:
resp = go(i[0])
result.append({"name": i[2], "children": resp})

return result

if __name__ == "__main__":
res = go(None)
pprint.pprint(res)

res_json = json.dumps(res)

Результат by jsonlint:

[
{
"name": "Big boss",
"children": [
{
"name": "Small boss1",
"children": [
{
"name": "worker1",
"children": []
},
{
"name": "worker2",
"children": []
}
]
},
{
"name": "Small boss1",
"children": []
}
]
}
]

recursion, json, python, hierarchy

Previous post Next post
Up