Warning: file_get_contents(/data/phpspider/zhask/data//catemap/3/clojure/3.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
Dictionary 为什么map键不检索可以在map中清楚看到的值?_Dictionary_Clojure - Fatal编程技术网

Dictionary 为什么map键不检索可以在map中清楚看到的值?

Dictionary 为什么map键不检索可以在map中清楚看到的值?,dictionary,clojure,Dictionary,Clojure,以下键:GIC-ID不会返回其值“999-99-9999”。我正试图找出原因 以下是键--第一行包含.csv报告的列名。输出格式化为防止滚动: ["AGY/DIV " "STS" "GIC-ID " "LAST-NAME " "FIRST-NAME " "COVERAGE DESCRIPTION " "PREMIUM " "RUN-DATE" "BIL MO "] ["666/0010" "AC

以下键
: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)))
现在,从类似但不同的报告中提取的以下键和数据工作正常:

:员工编号“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]*是匹配所有非空白字符的正则表达式