CSVの列がずれるとき|カンマ・引用符・改行を確認する

CSVの値にカンマや改行が含まれると、単純に区切って読む方法では列や行を取り違えることがあります。見た目を直す前に、入力と読み取り側がどの形式を想定しているかを確認します。

公開資料で確認できる基本

CSV形式の公開説明では、カンマ、二重引用符、改行を含むフィールドを二重引用符で囲む扱いが説明されています。囲まれた値の中の二重引用符は、二つ重ねて表します。この資料は情報提供の文書で、すべての入出力環境が同じ動きをする保証ではありません。

架空の値で見る

説明用に、二列の見出しを「対象,備考」とします。備考の値が「赤,青」の場合、値の中のカンマと列の区切りを区別する必要があります。単純な文字列の分割ではなく、想定形式に対応した読み取り方法を使います。

問題を切り分ける表

症状 確認すること
列が増える 値の中に区切り文字があるか
行が増える 値の中の改行を扱えているか
引用符が残る 引用符の解釈が一致しているか
特定行だけ崩れる その行の元の記述と列数

文字コードの問題と、区切りの問題を同じものとして直さないことも大切です。

修正前に残すもの

原本、問題が出た行への参照、取り込み設定を保存します。値の中のカンマをすべて削除するなど、意味が変わる一括置換を先にしません。元の内容が必要な項目か確認します。

取り込みを試すとき

架空の小さなデータで、通常の値、カンマを含む値、引用符を含む値、改行を含む値を分けて確かめます。読み込めただけでなく、それぞれの値と列数が保たれたかを見ます。検証した設定を本番へ適用できるかも確認します。

テストで見る具体的な値

架空の二列データなら、片方に識別用の「甲」、もう片方に「赤,青」という値を入れます。取り込み後も二列で、備考の中にカンマが残っているかを確認します。改行や引用符は別の行で試し、どの条件で崩れるかを分けます。個人情報を含む実データを、最初の試験用に使う必要はありません。

関連する照合

列の意味と移し先は列の対応表、取り込み後は加工前後の確認を参照してください。

コメント

タイトルとURLをコピーしました