《Clojure数据分析秘笈》——1.4节将JSON数据读入Incanter数据集

本节书摘来自华章社区《Clojure数据分析秘笈》一书中的第1章,第1.4节将JSON数据读入Incanter数据集,作者(美)Eric Rochester,更多章节内容可以访问云栖社区“华章社区”公众号查看

1.4 将JSON数据读入Incanter数据集
另一个越来越流行的数据格式是JavaScript Object Notation(JSON,详见http://json.org/)。与CSV相似,JSON也是无格式的文本,因此程序容易处理。它提供了相对于CSV文件关于数据的更多信息,但是代价是更冗长。JSON格式允许用更复杂的方式使数据结构化,例如层次结构或者序列层次结构。
由于JSON是比CSV更完善的数据模型,因此使用时可能需要转换数据。在这种情况下,可以将感兴趣的信息取出,在传入Incanter之前精简嵌入的映射。然而这种方法仅用于处理相当简单的数据结构。
1.4.1 准备工作
首先,在Leiningen的project.clj文件中包含以下依赖:


63f5dab23e631ddfd8f6f42bc5f8b0a5708db43d

在REPL解释器或程序中使用下列库:


513cf8225709d681cc041b349d6d8cb6016e2155

1.4.3 实现原理
和所有的Lisp语言相似,Clojure通常采用从内层到外层、从右到左的方式读取数据。接下来详细说明。clojure.core/slurp将读入文件内容并以字符串的形式返回。对于非常大的文件来说这明显不是个好主意,但是对小文件来说却很实用。clojure.data.json/read-json从slurp中得到数据,将其以JSON格式进行解析,并返回本地的Clojure数据结构。在本例中,它返回一个由向量组成的映射。maps.incanter.core/to-dataset读入一个映射序列,然后返回Incanter数据集。这将会使用映射中的键作为列名并将数据值转换成矩阵。事实上,to-dataset可以接收许多不同的数据结构。在REPL解释器上尝试(doc to-dataset)命令,或者登录http://data-sorcery.org/contents/查看Incanter文档中的详细内容。

  • 0
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 0
    评论
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值