次のキー:GIC-ID
はその値を返しません"999-99-9999"
。私はその理由を理解しようとしています。
キーは次のとおりです。最初の行には、.csvレポートの列名が含まれています。出力は、スクロールを防ぐようにフォーマットされています。
["AGY/DIV " "STS" "GIC-ID " "LAST-NAME " "FIRST-NAME "
"COVERAGE DESCRIPTION "
"PREMIUM " "RUN-DATE" "BIL MO "]
プライバシーのために作成されたデータは次のとおりです(スクロールを防ぐために出力がフォーマットされています)。
["666/0010" "ACT" "999-99-9999" "MARGE " "SIMPSON "
"YE OLD PILGRIM FAMILY - INSURED "
"0000.00" "123456789" "99999enter code here"]
キー/列ヘッダーを含む最初の列と、列名とデータの各行のジッパーを含む以下で作成されたデータを取得します。
(def gic-csv-inp (fetch-csv-data "billing_roster.csv"))
(def gic-csv-cols (first gic-csv-inp))
(def gic-csv-data (rest gic-csv-inp))
(def zm2 (zipmap (map #(keyword %1) gic-csv-cols) (first gic-csv-data)))
これで、類似しているが異なるレポートから取得した次のキーとデータが正常に機能します。
:Employee_SSN "999-99-9999"
つまり、キーの値を抽出できます。
キーに何か問題があるはずです。スペースを削除するなど、確かに修正できますが、何が問題なのかわかりません。
ありがとう。
編集:
私の質問に対する答えは、次のようにスペースをトリミングすることです。
(:require [clojure.string :as cstr])
.
.
.
(def zm2 (zipmap (map #(keyword (cstr/trim %1)) gic-csv-cols)
(first gic-csv-data)))