Crea un árbol json desde la lista csv en python

Estoy tratando de construir una jerarquía json a partir de una tabla simple en python.

Los datos vienen en el siguiente aspecto:

id         parent          name
1          10              test-name-1
2          10              test-name-2
3          5               test-name-3
4          none            test-name-4
5          10              test-name-5
6          none            test-name-6
7          1               test-name-7
8          1               test-name-8
9          8               test-name-9
10         4               test-name-10

y estoy buscando una salida como esta:

{"$4":{"name":"test-name-4","children":{
      "$10":{"name":"test-name-10","children":{
            "$1":{"name":"test-name-1","children":{
                 "$7":{"name":"test-name-7","children":{}},
                 "$8":{"name":"test-name-8","children":{
                      "$9":{"name":"test-name-9","children":{}}}}}},
            "$2":{"name":"test-name-2","children":{}},
            "$5":{"name":"test-name-5","children":{
                 "$3":{"name":"test-name-3","children":{}}}}}}}},
 "$6":{"name":"test-name-6","children":"test-name-6"}}

No tengo idea de cuántas "hojas" habrá o "raíces", o en qué orden entrarán las filas del csv. Mi pregunta es, ¿hay alguna manera de poder recursivamente crear un diccionario / lista desde un nodo secundario? hasta el padre? ¿Cómo puedo producir un árbol jerárquico a partir de las piezas de "hoja" del árbol en python?

¡Gracias por la ayuda!

Respuestas a la pregunta(3)

Su respuesta a la pregunta