鉴于我有一个包含内容的json文件:
[
{
"email": "benb@mit.edu"
},
{
"email": "aphacker@mit.edu"
},
{
"email": "eval@mit.edu"
},
{
"email": "prolog@mit.edu"
},
{
"email": "bugs@mit.edu"
},
{
"email": "morebugs@mit.edu"
},
{
"email": "test@mit.edu"
},
{
"email": "google@google.com"
}
]
如何解析此文件并获取每个email
标记的值,因为我需要使用这些值执行操作。
示例:
检索电子邮件列表
(benb@mit.edu, aphacker@mit.edu...)
对于列表中的每个元素,将其值传递给函数。我理解如何将它传递给函数,并且遇到get-in
函数但我不完全确定如何在此上下文中使用它。
可选地,如果可能,我希望存储文件
benb@mit.edu
aphacker@mit.edu
...
哪个更实用。我知道如何写入文件,但我不知道如何提取电子邮件数据。
答案 0 :(得分:2)
slurp
reads将文件转换为字符串,然后使用JSON解析器(例如cheshire或data.json)将其转换为向量。如果您想使用第二种文件格式,请line-seq
look split-lines
答案 1 :(得分:1)
克里斯
您可以按照Dax指出的方式读取/解析文件,然后在地图位于向量中时解决问题的其他部分:
(def emails (map :email (json/read-str (slurp fully-qualified-file))))
将每个电子邮件提取到一个序列中。然后,您可以使用以下内容来存储电子邮件,其中每个电子邮件都是生成的文件中的“行”:
(spit fully-qualified-result-file (interpose "\n" emails))