以下のデータで困っています。
リストがあります。
[{name: '/', children: [{name: 'bin'}, {name: 'sbin'}, {name: 'home'}]},
{name: 'home', children: [{name: 'user1'}, {name: 'user2'}]},
{name: 'user2', children: [{name: 'desktop'}]}]
上記のリストを次の辞書に変換したい。
{name: '/', children: [{name: '/bin'}, {name: '/sbin'}, {name: '/home', children: [{name: 'user1'}, {name: 'user2', children: [{name: 'desktop'}]}]}]}
上記のスタイルのデータを変換するコードをいくつか書きます。
def recT(data, child, parent, collector):
    dparent = dict(name=parent)
    dchildren = dict()
    lst = []
    for c in child:
        lst.append(dict(name=c['name']))
        for d in data:
            if c['name'] == d['name']:
                if len(d) > 1:
                    dchildren.update(dict(children=recT(data, d['children'], d['name'], collector)))
    dparent.update(dchildren)
    collector.update(dparent)
    return lst
それで、
myd = dict()
for d in data2:
    if len(d) > 1:
        recT(data2, d['children'], d['name'], myd)
注: data2 は、変換したい辞書リストです。
ただし、出力辞書はリストの最後のレコードです。
{'children': [{'name': 'desktop'}], 'name': 'user2'}
助けてください。