---
title: "CSV取込の例外処理は手順書からこぼれていく"
description: "列ズレ、文字コード、月末だけの例外など、CSV取込で起きる小さなズレが運用手順から外れていくことについてのメモ。"
lang: "ja"
canonical: "https://llm-lab.dev/posts/csv-import-exception-note/"
source: "https://llm-lab.dev/posts/csv-import-exception-note.md"
publishedAt: "2024-03-21"
updatedAt: "2024-03-21"
category: "技術メモ"
tags:
  - "csv"
  - "operations"
  - "workflow"
---

# CSV取込の例外処理は手順書からこぼれていく

> [!NOTE]
> この記事で確認したこと
>
> 今回は、CSV取込を単なるファイル形式の問題ではなく、入力品質と例外判断の問題として整理しました。
>
> 分かったことは、列ズレ、文字コード、空行、取引先ごとの例外よりも、その場の判断が人の記憶にだけ残ることが危ないという点です。取込ルールだけでなく、入力の揺れをどこで検知し、失敗時に元データへ戻るかを記録する必要があります。

CSV取込は、仕様として見ると単純です。決まった列順で、決まった文字コードで、決まった形式のファイルを読み込む。それだけに見えます。

ただ、現場のCSVはあまりきれいではありません。列名が微妙に変わる、空白が混ざる、全角と半角が揺れる、月末だけ別の担当者が出したファイルになる。手順書には書いていない例外が、少しずつ増えていきます。

問題は、例外処理そのものではありません。例外が起きたときの判断が、手順書ではなく人の記憶に残ることです。

```text
この取引先だけ列が1つ多い
この月だけ空行を消してから取り込む
このコードはマスタ未登録でも進めてよい
```

このような判断は、最初は一時対応です。しかし、翌月も同じことが起きると、いつの間にか運用になります。コードにも手順書にも残っていないのに、現場では「いつもの対応」になります。

AIにデータを渡す場合も、入力がきれいである前提は危ないと思っています。プロンプトを工夫する前に、入力の揺れをどこで検知するのか、失敗したときに元データへ戻れるのかを決める必要があります。

CSV取込の地味な失敗は、AI以前からある入力品質の問題です。新しい技術を入れるほど、この古い問題を無視しない方がよさそうです。
