簡體   English   中英

為什么地圖關鍵字無法檢索在地圖中可以清楚看到的值?

[英]Why does the map key not retrieve the value that can be plainly seen in the map?

以下密鑰: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)))

修剪空間確實有效

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

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

[^ \\ s] *是一個正則表達式,可匹配所有非空白字符

暫無
暫無

聲明:本站的技術帖子網頁,遵循CC BY-SA 4.0協議,如果您需要轉載,請注明本站網址或者原文地址。任何問題請咨詢:yoyou2525@163.com.

 
粵ICP備18138465號  © 2020-2024 STACKOOM.COM