Как конвертировать файлы XLS и JSON в CSV в Linux с помощью csvkit
Я не могу сказать вам, сколько раз мне приходилось работать, чтобы загрузить данные в новую систему (будь то CMS, CRM, HRM… что угодно), только чтобы узнать, что платформа не принимает файл формат, который у меня был. У вас может быть электронная таблица или файл JSON с огромным количеством данных, но система принимает только файл CSV.CSV.
Вы знаете, что это такое: значения, разделенные запятыми. Это плоский файл данных, каждая запись которого разделена запятой. Некоторые приложения теперь позволяют экспортировать файл в формат CSV. Даже Google Docs допускает такое действие с Sheets. Но не все приложения могут обрабатывать этот экспорт. И у вас может быть файл, созданный другим приложением (например, приложением или службой, которые генерируют файлы JSON), и вам нужно преобразовать этот файл в формат CSV.
Кем вы работаете?
Поскольку у нас есть Linux, он обращается к простому инструменту с открытым исходным кодом под названием csvkit. Это удобное приложение несколько раз сэкономило мне несколько часов работы. Что может csvkit, так это конвертировать и работать с CSV. Если вы когдалибо занимались разработкой или внедряли достаточное количество сетевых платформ (таких как инструменты CMS), то, скорее всего, вы сталкивались с ситуацией, когда вам нужно выгружать данные в формате CSV.
И все, что у вас есть, это файл электронной таблицы.
Если вы работаете на настольном компьютере, вы всегда можете открыть файл в выбранном вами офисном пакете и сохранить как. Но что, если вы находитесь на безголовом сервере и вам нужно работать быстро? Вам не нужно проверять файл на рабочем столе, загружать файл, сохранять его в нужном формате, а затем отправлять файл обратно на сервер.
Вы хотите быть эффективным. Поэтому csvkit.
Давайте установим его и посмотрим, как он работает.
что тебе понадобится
Я буду демонстрировать csvkit на Ubuntu Server 21.10. Чтобы это работало, вам понадобится дистрибутив на основе Ubuntu и пользователь с привилегиями sudo. Наконец, вам понадобится файл электронной таблицы для преобразования.
Как установить ксвкит
Csvkit доступен в стандартных репозиториях, поэтому установка очень проста. Войдите на свой сервер Ubuntu (или рабочий стол), откройте окно терминала и введите команду:
sudo aptget install csvkit y
Вот и все для установки.
Как преобразовать файл XLS в CSV
Допустим, у вас есть файл client.xlsx, и вам нужно преобразовать его в client.csv, а затем загрузить его как список клиентов в ваш новый инструмент CRM. Электронная таблица уже разработана в точном формате, необходимом для вашей CMS, поэтому все, что вам нужно сделать, это преобразовать ее.
Для такого преобразования вы должны использовать команду in2csv (включенную в csvkit) следующим образом:
in2csv clients.xlsx > clients.csv
Если у вас есть неименованные столбцы или строки в исходном файле, вы можете увидеть некоторые выходные данные команды, предупреждающие о том, что вместо отсутствующих записей использовались буквенноцифровые значения. Преобразование должно занять всего несколько секунд (в зависимости от размера файла). После завершения у вас должен быть файл с именем client.csv в той же папке. Вы можете проверить этот файл с помощью:
less clients.csv
Вы должны увидеть идеально отформатированный CSVфайл, готовый к загрузке (Рисунок А).
Рисунок А
То же самое касается преобразования файла JSON, который обрабатывается следующим образом:
in2csv clients.json > clients.csv
Если вам нужно преобразовать этот файл из CSV в JSON, вы можете сделать это с помощью команды csvjson следующим образом:
csvjson clients.csv > clients.json
У Csvkit есть пара других полезных трюков в рукаве. Вы можете перечислить имена столбцов в файле с помощью:
cvscut n clients.csv
Теперь, когда вы знаете имена столбцов только что преобразованного источника CSV, вы можете преобразовать только определенные столбцы из файла client.csv в другой файл CSV. Допустим, у вас есть столбцы «Имя» и «Фамилия», и вы хотите, чтобы только эти столбцы были преобразованы в новый файл. Это будет сделано с помощью:
csvcut c 'First Name','Last Name' clients.csv > names.csv
И вот как мы можем манипулировать файлами XLS, JSON и CSV с помощью csvkit. Этот инструмент может использоваться не очень часто, но когда он вам понадобится, вы будете рады, если он будет доступен.