1

私はそのようなオブジェクトを持っており、各次元(単純化されたjson)で時間(行が最初、ポイントが2番目)でソートしたい:

[{
    "type":"point"
},
{
    "type":"line",
    "children": [
        {
            "type":"point"
        },
        {
            "type":"point"
        },
        {
            "type":"line"
        }
    ]

},
{
    "type":"point"     
}]

このディメンションは、より深くなり、相互にさらに多くのポイント/ラインを持つことができます。

ソートされた出力は次のようになります。

[{
    "type":"line",
    "children": [
        {
            "type":"line"
        },
        {
            "type":"point"
        },
        {
            "type":"point"
        }
    ]

},
{
    "type":"point"
},
{
    "type":"point"     
}]

ありがとう

4

1 に答える 1

2

これを再帰的に処理する必要があります。

from operator import itemgetter

def sortLinesPoints(data):
    if isinstance(data, dict):
        if 'children' in data:
            sortLinesPoints(data['children'])
    else:
        for elem in data:
            sortLinesPoints(elem)
        data.sort(key=itemgetter('type'))
于 2013-03-30T15:00:28.743 に答える