なぜ YAML を CSV に変換するのですか?
製品カタログ、連絡先リスト、テストフィクスチャなど、人間が読みやすいように YAML で作成されたデータセットは、スプレッドシート、データベース、またはレポートツールに取り込む必要があることがよくあります。.CSV はその転送のためのユニバーサルな交換形式であり、Excel、Google Sheets、および事実上すべてのデータベースインポーターで受け入れられます。
YAML から CSV への変換方法
コマンドライン - yq CLI
github.com/mikefarah/yq から yq(無料、Windows / macOS / Linux)をインストールした後、yq -o=csv '.' input.yaml > output.csv を実行します。
Python - PyYAML + csv FREE
pip 経由で PyYAML をインストールし、yaml.safe_load() でロードして、組み込みの csv.DictWriter で行を書き込みます。
Python - pandas FREE
pip install pandas pyyaml の後、1行で変換できます:pd.DataFrame(yaml.safe_load(open('input.yaml'))).to_csv('output.csv', index=False)。
これらの形式について
.yaml(または .yml)ファイルは、YAML で記述されたプレーンテキストの構造化データまたは設定ファイルです。CI/CD パイプライン、Docker Compose、Kubernetes マニフェスト、アプリの設定に使用されます。任意のコードエディタで開けますが、インデントのエラーを指摘してくれる YAML 拡張機能付きの VS Code…
.YAML の詳細を開く →CSV ファイルは、表形式のデータをプレーンテキストとして保存します。1行に1レコード、値はカンマ(欧州圏ではセミコロン)で区切られます。Excel、Google Sheets、LibreOffice Calc などのスプレッドシートソフトで開くことができます。最も一般的な問題は、Excel…
.CSV の詳細を開く →品質と注意点
- フラットで均一な YAML シーケンスのみが綺麗に変換されます。ネストされた設定(Kubernetes、Docker Compose、CI パイプライン)は、無意味または空の CSV 出力を生成します。
- YAML のコメントや型の区別(整数、ブール値)は暗黙的に失われます。
yes、no、on、offなどの値は、古いパーサーによってブール値として誤読される可能性があります。 - 列の順序は最初のレコードのキー順に従います。特定の順序が必要な場合は、
fieldnamesを明示的に定義するか、ソースファイルでキーを並べ替えてください。
よくある質問
YAML にネストされたオブジェクトがあります。それでも変換できますか?
`---` で区切られたマルチドキュメント YAML ファイルで機能しますか?
yq eval-all '[.]' input.yaml を使用してそれらをマージしてください。ドキュメントは依然として均一なフラットシーケンスである必要があります。