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
scroll top