0

次のキー: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)))
4

1 に答える 1

1

スペースのトリミングは機能します

(def zm2 (zipmap (map #(keyword (re-find #"[^\s]*" %1)) gic-csv-cols) (first gic-csv-data)))

=> (zm2 :GIC-ID)
"999-99-9999"

[^ \s]*空白以外のすべての文字に一致する正規表現

于 2012-08-08T17:38:38.163 に答える