Créer un JSON hiérachique à partir d'un tuple de dict listant une généalogie
Bonjour.
J'ai un tuple de dict listant une généalogie de personnes :
Code:
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:
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