Pregunta

Estoy seguro de que hay una forma elegante de hacer esto en Python (o en un empujón, JavaScript), pero por la vida de mí no puedo verlo ...

Tengo un archivo CSV del formulario:

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

y quiero generar una estructura json jerárquica para poder visualizar los datos en 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* ]  
}; 

Mi plan era asignar ID a ID, nombre a nombre, descripción de data.desc, y organizar la jerarquía para que:

  • La raíz es padre de A y B
  • A es padre de A100 y A200
  • A100 es padre de A110 y A120
  • A110 es padre de A111, A112 y A113
  • B es padre de B100
  • B100 es padre de B130 y B140
  • B130 es padre de B131

También hay un caso patológico en el pedido regular de ID, donde A100 es padre de A131 (el A130 esperado no está presente).

Esperaba encontrar una elegante solución de Python para esto, pero me está derrotando en este momento, incluso ignorando el caso patológico ...

No hay solución correcta

Licenciado bajo: CC-BY-SA con atribución
No afiliado a StackOverflow
scroll top