Bonjour.
J'ai un tuple de dict listant une généalogie de personnes :
Code : Sélectionner tout - Visualiser dans une fenêtre à part
1
2
3
4
5
my_tuple =[{"id":"1", "parent_id":"", "name":"name_1"},
{"id":"2", "parent_id":"1", "name":"name_2"},
{"id":"3", "parent_id":"2", "name":"name_3"},
{"id":"4", "parent_id":"2", "name":"name_4"},
{"id":"5", "parent_id":"1", "name":"name_5"}]
Je cherche à obtenir un objet JSON de la forme :
Code : Sélectionner tout - Visualiser dans une fenêtre à part
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
{"name": "name_1",
"children":
    [
        {
        "name":"name_2",
        "children":
            [
            {"name":"name_3"},
            {"name":"name_4"}
            ]
        },
        {
        "name":"name_5"
        }
    ]
}
j'imagine qu'il faut utiliser reduce (my_choice, my_tuple) avec une fonction my_choice() qui prend en argument les dicts Dx, Dx+1 et qui retourne différemment en fonction de la valeur de Dx+1["parent_id"] == Dx["id"] , mais je ne réussis pas à trouver ce que doit renvoyer choice() pour que reduce() concatène correctement ...
Si quelqu'un peut m'orienter, merci par avance.
Yves