powershell V4:
gc .\data.csv | ConvertTo-Json | sc .\data.json
powershell V4,V3:
Using PowerShell for dynamic JSON parsing
powershell V2:
Read Json Object in Powershell 2.0
Я добился значительных успехов в поиске на этом сайте и изучении нелепого языка - пакетного скриптинга Windows, но, честно говоря, я застрял. Пример ниже взят из старого модуля нашей лаборатории радиометра, который регулярно записывает свои данные в виде файлов TXT. Я пытаюсь разобрать их в правильный JSON. Идея состоит в том, чтобы иметь .bat-файл, который может периодически запускаться для изменения всех журналов TXT в определенной папке в формат JSON.
Некоторые из причин, по которым у меня возникают проблемы: длинный заголовок, нерелевантные «PRODUCES» или «MFRSR» в заголовке, нерелевантные единицы в заголовке, несогласованные разделители между значениями, странное значение «* 5» для нуля (который может быть просто нулем в этом случае) и тот факт, что данные содержат на 3 столбца больше, чем заголовок (первые 3 значения на самом деле являются старой нотацией электронной таблицы для времени).
*.текст:
PRODUCES MFRSR Detector Temp, degC HTR V, V MFRSR Thermopile Total, W/m^2 MFRSR 414.0nm Total, (W/m^2)/nm MFRSR 496.6nm Total, (W/m^2)/nm MFRSR 613.0nm Total, (W/m^2)/nm MFRSR 670.9nm Total, (W/m^2)/nm MFRSR 869.3nm Total, (W/m^2)/nm MFRSR 937.6nm Total, (W/m^2)/nm MFRSR Thermopile Diffuse, W/m^2 MFRSR 414.0nm Diffuse, (W/m^2)/nm MFRSR 496.6nm Diffuse, (W/m^2)/nm MFRSR 613.0nm Diffuse, (W/m^2)/nm MFRSR 670.9nm Diffuse, (W/m^2)/nm MFRSR 869.3nm Diffuse, (W/m^2)/nm MFRSR 937.6nm Diffuse, (W/m^2)/nm MFRSR Thermopile DirNorm, W/m^2 MFRSR 414.0nm DirNorm, (W/m^2)/nm MFRSR 496.6nm DirNorm, (W/m^2)/nm MFRSR 613.0nm DirNorm, (W/m^2)/nm MFRSR 670.9nm DirNorm, (W/m^2)/nm MFRSR 869.3nm DirNorm, (W/m^2)/nm MFRSR 937.6nm DirNorm, (W/m^2)/nm 42099 0.29236 -0.55603 45.20 7.4819 *5 *5 *5 *5 *5 *5 *5 *5 *5 *5 *5 *5 *5 *5 *5 *5 *5 *5 *5 *5 *5 42099 0.57222 0.01180 45.20 7.8285 0.9378 0.0086 0.0086 0.0032 0.0040 0.0018 0.0005 0.9473 0.0093 0.0086 0.0032 0.0040 0.0018 0.0005 -0.8090 0.0000 0.0000 0.0000 0.0000 0.0000 0.0000 42099 0.57291 0.01415 45.20 7.8382 1.3587 0.0093 0.0086 0.0032 0.0040 0.0018 0.0005 1.3725 0.0093 0.0086 0.0032 0.0040 0.0023 0.0005 -0.9770 0.0000 0.0000 0.0000 0.0000 0.0000 0.0000 42099 0.57361 0.01656 45.20 7.8998 2.6372 0.0099 0.0100 0.0032 0.0040 0.0023 0.0005 2.6641 0.0099 0.0100 0.0032 0.0040 0.0023 0.0005 -1.6210 0.0000 0.0000 0.0000 0.0000 0.0000 0.0000
* .Json:
PRODUCES1 = { Id: 42099029236 X: -0.55603 DetectorTemp: 45.20, HTRV: 7.4819, ThermopileTotal: 0.0000, 414Total: 0.0000, 496Total: 0.0000, 613Total: 0.0000, 670Total: 0.0000, 869Total: 0.0000, 937Total: 0.0000, ThermopileDiffuse: 0.0000, 414Diffuse: 0.0000, 496Diffuse: 0.0000, 613Diffuse: 0.0000, 670Diffuse: 0.0000, 869Diffuse: 0.0000, 937Diffuse: 0.0000, ThermopileDirNorm: 0.0000, 414DirNorm: 0.0000, 496DirNorm: 0.0000, 613DirNorm: 0.0000, 670DirNorm: 0.0000, 869DirNorm: 0.0000, 937DirNorm: 0.0000 }; PRODUCES2 = { Id: 42099057222 X: -0.55603 DetectorTemp: 45.20, HTRV: 7.8285, ThermopileTotal: 0.9378, 414Total: 0.0086, 496Total: 0.0086, 613Total: 0.0032, 670Total: 0.0040, 869Total: 0.0018, 937Total: 0.0005, ThermopileDiffuse: 0.9473, 414Diffuse: 0.0093, 496Diffuse: 0.0086, 613Diffuse: 0.0032, 670Diffuse: 0.0040, 869Diffuse: 0.0018, 937Diffuse: 0.0005, ThermopileDirNorm: -0.8090, 414DirNorm: 0.0000, 496DirNorm: 0.0000, 613DirNorm: 0.0000, 670DirNorm: 0.0000, 869DirNorm: 0.0000, 937DirNorm: 0.0000 };
Здесь есть кто-нибудь, кто знает партию и может начать меня?
powershell V4:
gc .\data.csv | ConvertTo-Json | sc .\data.json
powershell V4,V3:
Using PowerShell for dynamic JSON parsing
powershell V2:
Read Json Object in Powershell 2.0