dimayakovlev.ru


CSV в JSON на PowerShell

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

В качестве примера предлагаю рассмотреть следующий фрагмент CSV данных, сохранённых в файле CSS3Colors.csv. Следует обратить внимание, что в качестве символа разделителя полей используется ;, а не ,.

name;hex;rgb;luma
aliceblue;#F0F8FF;240,248,255;96.78611765%
antiquewhite;#FAEBD7;250,235,215;92.84117647%
aqua;#00FFFF;0,255,255;78.74%
aquamarine;#7FFFD4;127,255,212;88.11082353%
azure;#F0FFFF;240,255,255;98.74941176%
beige;#F5F5DC;245,245,220;95.37058824%
bisque;#FFE4C4;255,228,196;90.75678431%
black;#000000;0,0,0;0%

Следующий код PowerShell читает CSV данные из файла CSS3Colors.csv, преобразует их в JSON и сохраняет в файл CSS3Colors.json.

Import-CSV -Path 'CSS3Colors.csv' -Delimeter ';' | ConvertTo-Json | Out-File -FilePath 'CSS3Colors.json'

Результат выполнения команды.

[
    {
        "name":  "aliceblue",
        "hex":  "#F0F8FF",
        "rgb":  "240,248,255",
        "luma":  "96.78611765%"
    },
    {
        "name":  "antiquewhite",
        "hex":  "#FAEBD7",
        "rgb":  "250,235,215",
        "luma":  "92.84117647%"
    },
    {
        "name":  "aqua",
        "hex":  "#00FFFF",
        "rgb":  "0,255,255",
        "luma":  "78.74%"
    },
    {
        "name":  "aquamarine",
        "hex":  "#7FFFD4",
        "rgb":  "127,255,212",
        "luma":  "88.11082353%"
    },
    {
        "name":  "azure",
        "hex":  "#F0FFFF",
        "rgb":  "240,255,255",
        "luma":  "98.74941176%"
    },
    {
        "name":  "beige",
        "hex":  "#F5F5DC",
        "rgb":  "245,245,220",
        "luma":  "95.37058824%"
    },
    {
        "name":  "bisque",
        "hex":  "#FFE4C4",
        "rgb":  "255,228,196",
        "luma":  "90.75678431%"
    },
    {
        "name":  "black",
        "hex":  "#000000",
        "rgb":  "0,0,0",
        "luma":  "0%"
    }
]

Прочитать об используемых командлетах PowerShell можно в официальной справке Microsoft: