Come creare un albero JSON da una gerarchia tabulata in Python
Domanda
Sono sicuro che esiste un modo elegante di farlo a Python (o a una spinta, JavaScript), ma per la vita di me non riesco a vederlo ...
Ho un file CSV del modulo:
ID, Name, Description
A, A-name,
A100, A100-name, A100-desc
A110, A110-name, A110-desc
A111, A111-name, A111-desc
A112, A112-name, A112-desc
A113, A113-name, A113-desc
A120, A120-name, A120-desc
A131, A131-name, A131-desc
A200, A200-name, A200-desc
B, B-name,
B100, B100-name, B100-desc
B130, B130-name, B130-desc
B131, B131-name, B131-desc
B140, B140-name, B140-desc
e voglio generare una struttura gerarchica JSON in modo da poter visualizzare i dati in Thejit.
var json = {
"id": "aUniqueIdentifier",
"name": "usually a nodes name",
"data": {
"some key": "some value",
"some other key": "some other value"
},
"children": [ *other nodes or empty* ]
};
Il mio piano era di mappare ID su ID, nome per nominare, descrizione a data.desc e organizzare la gerarchia in modo che:
- La radice è genitore di a e b
- A è genitore di A100 e A200
- A100 è genitore di A110 e A120
- A110 è genitore di A111, A112 e A113
- B è genitore di B100
- B100 è genitore di B130 e B140
- B130 è genitore di B131
Esiste anche un caso patologico nell'ordinamento altrimenti regolare per ID, in cui A100 è genitore di A131 (l'A130 previsto non è presente).
Speravo di trovare un'elegante soluzione Python a questo, ma al momento mi sta sconfiggendo, ignorando persino il caso patologico ...
Nessuna soluzione corretta
Autorizzato sotto: CC-BY-SA insieme a attribuzione
Non affiliato a StackOverflow