Как преобразовать CSV в json и написать спецификационную c функцию для генерации графика с использованием javascript? - PullRequest
0 голосов
/ 24 января 2020

Я пытаюсь визуализировать данные, генерируя график с использованием ключевых линий. Он принимает данные в формате json. Я пытаюсь преобразовать данные Excel в формат json. У меня есть две колонки в листе Excel.

Начальный узел Соединительный узел

A - B

A - C

A - D

B - D

D - F

Поскольку существуют тысячи строк данных, какую функцию я должен написать, чтобы я мог генерировать элементы в этом формате в javascript:

Мне нужно сначала инициализировать узлы и ссылку.

const data = { type: 'LinkChart',
  items: [
    { type: 'node', id: 'ac1'},
    { type: 'node', id: 'ac2'},
    { type: 'link', id: 'l1', id1: 'ac1', id2: 'ac3 },
    { type: 'link', id: 'l2', id1: 'ac1', id2: 'ac3'} 
  ]
};

Чтобы создать график, мне нужно написать его указанным c способом. Сначала я должен инициализировать узел типа и написать эту строку для AB C DF. После этого я должен написать строки 'link'.

Я создал словарь, используя python для преобразования csv в json [{"start": "A", "connect": "B"}, {"start": "A", " connect ":" C "}, {" start ":" A "," connect ":" D "}, {" start ":" B "," connect ":" C "}, {" start ":" D "," connect ":" F "}]

Как написать функцию для получения этих данных и записи их в часть элементов для создания графика. Подобно тому, как сначала записываются все узлы, а затем линии связи в том же шаблоне. Мне нужно написать в этом формате более 50000 строк. Также как я могу уникально инициализировать узлы, как в А инициализируется как узел один раз, а не 3 раза, как в данных. Я новичок в этом, поэтому у меня нет особых идей.

1 Ответ

0 голосов
/ 24 января 2020

Попробуйте что-то вроде этого (используя Python терминов. В js, замените список массивом и продиктуйте объект)

  1. Сохраните электронную таблицу в csv
  2. Прочитайте CSV в список (50 тыс. строк много, но все равно следует загружать сразу, если ваши значения данных не огромны)
  3. Создать пустой items список
  4. перебрать список данных с помощью map функция или простой for l oop
  5. В этой циклической функции создайте dict для каждой строки, проверьте, имеет ли items dict с текущим узлом в качестве типа (вы также можете сделать отдельный список узлов в dict - может быть быстрее, но также использовать больше памяти)
    • , если не создать dict и добавить к items
  6. Создать еще один dict для ссылки и добавьте это также к items (если вам нужно избежать дублирования ссылок, сначала проверьте это здесь)
  7. После l oop добавьте массив items к вашему data dict
...