前回CSVファイルを読み込んで編集する方法を紹介しました。
今回はそのCSVで読み込んだデータをJsonに変換して出力するやり方です。
実は調べてみたら超簡単でした。
1.CSVファイルの読み込み
まずは前回同様CSVファイルを読み込みます。
$streamReader = New-Object System.IO.StreamReader("C:\tmp\input.csv", [System.Text.Encoding]::GetEncoding("Shift_JIS")) $content = $streamReader.ReadToEnd() $streamReader.Close() Set-Content -Path "C:\tmp\converted_input.csv" -Value $content -Encoding "UTF8" $csvData = Import-Csv -Path "C:\tmp\converted_input.csv"
※もちろんエンコードは適宜必要に応じて修正してください。
2.Jsonデータに変換
次のコマンドで読み込んだデータをJson形式に変換します。
$jsonData = $csvData | ConvertTo-Json
3.JSONデータをファイルに保存
最後に、変換したJSONデータをファイルに保存します。以下のコマンドをPowerShellに入力してください。
Set-Content -Path "C:\tmp\output.json" -Value $jsonData
はいこれだけです。たったこれだけでCSVをJSONに変換できました。
凄いなやっぱり。ChatgptなどのAIと言いOS自体の機能と言い、最近のIT環境の生産性というか便利さが昔とは比べ物にならない水準に到達してきている気がする。
基礎も大事だけど最新のツールをどんどんキャッチアップしていかないと、一部の天才技術者だけではなく、普通の技術者も最新のツールを知らない技術者の10倍=10人分のアウトプットを出せる日がもうそこまで来ている。というかすでに来ているのかもしれない。
4.おまけ、CSVファイルをXMLに変換する
Jsonに変換できたという事は、XMLにも変換できるのでは?という事でステップ「2.」を以下のコマンドに置き換えてみると
$jsonData = $csvData | ConvertTo-Xml
なぜかうまく行かず。
XMLを出力するにはこちらが必要なようでした。
$csvData | Export-Clixml -Path C:\tmp\output.xml
理由をChatgptに聞いてみたら、↓という事でした。
ConvertTo-Xmlコマンドレットは、PowerShellのオブジェクトをXML形式に変換するためのコマンドレットです。しかし、Import-Csvコマンドレットによって作成されたオブジェクトは、CSVファイルから生成されたテーブル形式のデータであるため、ConvertTo-Xmlコマンドレットが適用できません。
まぁ要するに$csvDataはオブジェクトではあるけどConvertTo-Xmlが想定する形式にはなってないって事ですかね。
0 件のコメント:
コメントを投稿