Есть ли способ, которым я могу обрабатывать CSV с родительско-дочерними отношениями с помощью NodeJS?

#node.js #csv

Вопрос:

У меня есть запись, которая выглядит так

 name, value

Parent Name
MyName, MyValue

Parent Name
OtherName, OtherValue
 

Это должно привести к

 [
  {
    name:"ParentName",
    children: [
      {
        name: "myName",
        value: "myValue"
      },{
        name: "otherName",
        value: "otherValue"
      }
    ]
  }
]
 

Теперь я знаю, что это плохо скомпонованный CSV, но я не могу это контролировать, поэтому мне нужно использовать его так, как это делается в настоящее время. Я мог бы предварительно обработать его, но я не уверен, как бы я определил, является ли это родительской строкой или дочерней строкой.

Есть ли хороший способ проанализировать такого рода документы с помощью узла?

Комментарии:

1. Почему в одном месте отображается «Имя родителя», а в другом — «Имя родителя»?

2. Поскольку это совершенно нестандартно, вам просто нужно будет написать свой собственный код синтаксического анализа и логику. Непонятно, о чем еще вы просите помимо этого.

3. Вот к чему я как бы клоню соответствует ли это общему шаблону случайности

4. Это не «плохо собранные» данные, это просто «не данные CSV». CSV-это, самое большее, одна строка информации заголовка (имя каждого столбца с запятыми между именами), а затем каждая следующая строка — что неудивительно-значения, разделенные запятыми. Никаких пустых строк, никаких «внезапно появились новые имена». Просто строка за строкой значений, разделенных запятыми.

Ответ №1:

Это не формат CSV по какому-либо определению такого формата. Таким образом, вы не найдете никакого готового CSV-кода для анализа этого или для ввода его в желаемый вывод.

Вместо этого вам придется написать свой собственный код, чтобы прочитать его, проанализировать и организовать так, как вы хотите получить результат.