Рекурсивная функция для создания иерархического объекта JSON?

Я просто недостаточно хороший компьютерный ученый, чтобы понять это самостоятельно :(

У меня есть API, который возвращает ответы JSON, которые выглядят так :

// call to /api/get/200
{ id : 200, name : 'France', childNode: [ id: 400, id: 500] } 
// call to /api/get/400
{ id : 400, name : 'Paris', childNode: [ id: 882, id: 417] } 
// call to /api/get/500
{ id : 500, name : 'Lyon', childNode: [ id: 998, id: 104] } 
// etc

Я хотел бы разобрать его рекурсивно и построить иерархический объект JSON, который выглядит примерно так:

{ id: 200,
  name: 'France', 
  children: [
     { id: 400,
       name: 'Paris',
       children: [...]
     },
     { id: 500,
       name: 'Lyon', 
       children: [...]
     } 
  ],
} 

На данный момент у меня есть это, которое анализирует каждый узел дерева, но не сохраняет его в Объект JSON. Как я могу расширить это, чтобы сохранить его в объект JSON?

hierarchy = {}
def get_child_nodes(node_id):   
    request = urllib2.Request(ROOT_URL + node_id)
    response = json.loads(urllib2.urlopen(request).read())
    for childnode in response['childNode']:
        temp_obj = {}
        temp_obj['id'] = childnode['id']
        temp_obj['name'] = childnode['name']
        children = get_child_nodes(temp_obj['id'])
     // How to save temp_obj into the hierarchy?
get_child_nodes(ROOT_NODE)

Это не домашнее задание, но, возможно, мне нужно сделать домашнее задание, чтобы лучше решать проблемы такого рода :( Спасибо за любую помощь.

9
задан Bergi 24 May 2012 в 12:41
поделиться