《机器学习与数据科学(基于R的统计学习方法)》——2.8 读取JSON文件

简介:

本节书摘来异步社区《机器学习与数据科学(基于R的统计学习方法)》一书中的第2章,第2.8节,作者:【美】Daniel D. Gutierrez(古铁雷斯),更多章节内容可以访问云栖社区“异步社区”公众号查看。

2.8 读取JSON文件

为机器学习项目读取数据时,另一种你可能遇到的数据文件类型是JSON,也就是JavaScript Object Notation。JSON是基于文本的开源标准,为创造人类可读的数据交换而设计。它经常和流行的Ajax网络编程技术一同使用。R有两个流行的包能够连接JSON数据文件:rjson和RJSONIO。rjson没有使用R的S3或S4系统,所以它不太容易扩展。同时,rjson也不使用向量化操作,这导致它处理重要数据时速度很慢。同样的,在将JSON数据读入R时,rjson也有点慢并且不能扩展到海量数据。因此,在本节中我们会使用RJSONIO。

我们提供了一个把JSON文件读进R的数据连接案例,第一步需要获得一个URL来下载SFParkingMeters数据集的JSON版本(JSON是San Francisco Data网站提供的另一种文件类型)。大多数的工作由RJSONIO包中的fromJSON()函数来完成。这个函数能将JSON数据内容转换成R对象,以便进行更深入的分析。

下面的R代码首先将JSON URL保存在变量fileURL中。下一步,我们在fromJSON()函数中提交URL,返回数据存储在一个嵌套列表的实体中,包括两个基本的部分:meta和data。我们只需要data部分,所以我们把它存储在列表实体parkdata中。这里的窍门是知道怎样将嵌套列表拆成变量的单独值。为了做到这一点,你需要用parkdata[[1]]来看第一行的观测值,尝试识别一些数据,然后标注这些值的索引,以便后续进行查阅来构造一个数据框。我们可以使用列表处理函数sapply()将数据从列表中抽取出来。最后,我们需要构造一个新的数据框park_df,里面包含初识JSON文件的3个变量:CAP_COLOR、METER_TYPE和STREETNAME。现在,JSON数据以一种合适的数据框的形式存在,我们可以对数据进行常用的分析:

> library(RJSONIO)
> fileURL <- "https://data.sfgov.org/api/views/7egw-qt89/rows. json?accessType=DOWNLOAD"
> parkdata <- fromJSON(fileURL)[[2]]
> park_df = data.frame(
 CAP_COLOR = sapply(parkdata, function(x) x[[12]]),
 METER_TYPE = sapply(parkdata, function(x) x[[13]]),
 STREETNAME = sapply(parkdata, function(x) x[[20]])  
)
> head(park_df)
    CAP_COLOR  METER_TYPE   STREETNAME
1   Grey        SS             CHESTNUT ST
2   Green       SS             CHESTNUT ST
3   Yellow      SS             CHESTNUT ST
4   Grey        SS             COLUMBUS AVE
5   Grey        SS             COLUMBUS AVE
相关文章
|
11天前
|
JSON JavaScript 前端开发
JavaScript原生代码处理JSON的一些高频次方法合集
JavaScript原生代码处理JSON的一些高频次方法合集
|
1月前
|
数据采集 机器学习/深度学习 存储
【机器学习】数据清洗——基于Numpy库的方法删除重复点
【机器学习】数据清洗——基于Numpy库的方法删除重复点
71 1
|
1月前
|
数据采集 机器学习/深度学习 Python
【机器学习】数据清洗——基于Pandas库的方法删除重复点
【机器学习】数据清洗——基于Pandas库的方法删除重复点
45 1
|
2月前
|
Web App开发 JSON JavaScript
SAP UI5 应用程序小技巧 - 一键将 JSON 对象导出成本地 json 文件
SAP UI5 应用程序小技巧 - 一键将 JSON 对象导出成本地 json 文件
25 0
|
1月前
|
机器学习/深度学习 算法 数据可视化
实现机器学习算法时,特征选择是非常重要的一步,你有哪些推荐的方法?
实现机器学习算法时,特征选择是非常重要的一步,你有哪些推荐的方法?
26 1
|
1月前
|
存储 JSON JavaScript
Python字典和JSON字符串相互转化方法
【2月更文挑战第18天】
59 3
|
1月前
|
JSON 前端开发 数据格式
vue-cli3读取本地json文件
vue-cli3读取本地json文件
45 1
|
2月前
|
编解码 JavaScript 前端开发
TypeScript【第三方声明文件、自定义声明文件、tsconfig.json文件简介、tsconfig.json 文件结构与配置】(六)-全面详解(学习总结---从入门到深化)
TypeScript【第三方声明文件、自定义声明文件、tsconfig.json文件简介、tsconfig.json 文件结构与配置】(六)-全面详解(学习总结---从入门到深化)
62 0
|
1天前
|
机器学习/深度学习 数据可视化 数据挖掘
《Python 简易速速上手小册》第9章:数据科学和机器学习入门(2024 最新版)
《Python 简易速速上手小册》第9章:数据科学和机器学习入门(2024 最新版)
11 1
|
1月前
|
JSON 数据处理 API
盘点Python中4种读取JSON文件和提取JSON文件内容的方法
盘点Python中4种读取JSON文件和提取JSON文件内容的方法
263 0