Когда я начал программировать на Javascript, я в основном предпочитал формат файла JSON, а не любой другой формат файла. Я подумал об использовании данных IPL и проанализировал их. Но данные, которые я получил, были в формате CSV. Хотя у нас есть пакет npm csv-parser, я подумал о написании собственного скрипта, который мог бы конвертировать файл CSV в файл JSON. Давайте узнаем об этом…

Прежде чем начать, вам нужно установить npm и node js на свой компьютер. Также вам может понадобиться набор данных CSV для преобразования в формат JSON. Я загрузил набор данных IPL ball by ball по ссылке ниже,

https://www.kaggle.com/patrickb1912/ipl-complete-dataset-20082020

Сначала давайте создадим папку и инициализируем пакет npm с помощью следующей команды:

npm init -y

После инициализации вам нужно открыть новый javascript и начать кодирование из Visual Studio или любой другой IDE, в зависимости от того, что вы предпочитаете.

Давайте поместим этот CSV-файл в подпапку проекта и переименуем его, как вам удобно,

Давайте импортируем пакет файловой системы, который необходим для выполнения операций с файлами, используя следующую команду:

const fs = require('fs')

Я собираюсь хранить все данные CSV в переменной, используя функцию readfilesync файловой системы,

//Storing the entire CSV file as a string in a variable
let jsonFile = fs.readFileSync("data/iplBallData.csv").toString()

Убедитесь, что вы добавили .toString() для преобразования всего набора данных в строку.

Поскольку файл CSV содержит двойные кавычки, мы постараемся удалить те, в которых есть функция .replace,

//As the file contains double quotes already, we are trying to remove them
jsonFile = jsonFile.replace(/"/g,'');

Пришло время объявить пустой массив для хранения всего набора данных,

//Declaring an empty array to store values
let myDataSet = [];

Теперь нам нужно сохранить каждую запись файла в переменной с помощью функции разделения,

//spliting each line with /n and /r and storing them in a variable
const lines = jsonFile.split('\r\n')

\r и \n имеют одинаковое свойство создания нового файла.

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

//Getting the header of CSV file table
const heading = lines[0].split(',')

Lines[0] будет иметь первую строку записи, которая имеет заголовок таблицы

Давайте сделаем цикл для перебора каждой записи,

for (i=1;i<lines.length;i++)

Нам может понадобиться еще один цикл, чтобы присвоить каждому заголовку таблицы значение, подобное формату JSON. С обоими циклами наш код будет выглядеть следующим образом:

В приведенном выше фрагменте кода у нас есть пустой объект — singleData, который будет содержать одну запись. Как только в нем будет вся запись, она будет помещена в пустой массив с именем myDataSet.

У нас есть все данные в myDataSet, давайте теперь сохраним их в файле JSON с функцией файловой системы, как показано ниже:

Хорошо, наш полный код будет выглядеть следующим образом:

Попробуйте запустить этот код с помощью команды node, как показано ниже:

node csvToJson.js

Вот и все!! Вы сделали! Вы получите вывод, как показано ниже,

Удачного кодирования ;-)