営業チームの誰かがスプレッドシートをCSVとしてエクスポートし、「システムに読み込んでおいて」と頼んできます。しかしシステムはJSONを期待しています。そこでCSV解析ライブラリを使った簡単なPythonやNodeのスクリプトを書き、列をフィールドにマッピングし、ヘッダー行を処理し、値の中にカンマが含まれていて、単純なカンマ分割ロジックを壊さないことを願います(たいてい引用符付きフィールドの中に隠れていて壊れます)。
これは開発者が何度も何度も解決しているタスクであり、そのたびにわずかに異なる使い捨てのコードを書いています。なぜならCSVはスプレッドシート、データベース、分析ツールからのエクスポート形式として絶えず登場する一方で、最近のほとんどのツールやAPIはJSONを期待しているからです。
CSVの見せかけのシンプルさ
CSVは些細なものに見えます——カンマで分割し、改行で分割すれば完了、と。しかし、仕様に従って引用符で囲まれたカンマを含むフィールドに遭遇すると、単純なパーサーは壊れます。あるいは引用符の中に埋め込まれた改行を含むフィールドがあり、単純な行単位の読み込みでは正しく処理できません。CSVの解析を正しく行うには、実際には引用のルールを尊重する必要があり、だからこそ専用のコンバーターの方が毎回ゼロから書くよりも優れているのです。
CSVを構造化されたJSONに変換
Bellowsには、引用符付きフィールドとヘッダー行を正しく処理し、スプレッドシートのエクスポートをテストフィクスチャやリクエストボディ、スクリプトに貼り付ける準備が整ったJSONオブジェクトの配列に変換するCSVからJSONへのコンバーターが含まれています。
スプレッドシートデータをAPIに読み込む
1回限りのデータインポートのためにスクリプトを書いて保守することが割に合わない場合、CSVのエクスポートを直接JSONに変換して、APIテストツールやデータベースのシードファイルに貼り付ければ、はるかに短い時間で作業を終えられます。
実データからテストフィクスチャを作成する
スプレッドシートから本番に近いデータのサンプルをCSVとしてエクスポートし、JSONに変換することは、フィールドを1つずつ手書きすることなく、現実的なテストフィクスチャを生成する手早い方法です。