什么是 json ?
在 WEB 应用系统开发以及数据分析中经常遇到 json 数据格式的文件,如下示意:
{
"paramz": {
"feeds": [
{
"id": 299080,
"oid": 288342,
"category": "article",
"data": {
"subject": "视频直播:习近平马英九会面",
"summary": "两岸领导人习近平、马英九在新加坡会面",
"cover": "/Attachs/Article/288342/56a263bcab4a4c55b0bef0528ce880b6_padmini.JPG",
"pic": "",
"format": "video",
"changed": "2015-11-07 14:35:22"
}
},
{
"id": 299076,
"oid": 288340,
"category": "article",
"data": {
"subject": "荔枝新闻3.0:不止是阅读",
"summary": "江苏广电旗下资讯类手机应用“荔枝新闻”于近期推出全新升级换代的3.0版。",
"cover": "/Attachs/Article/288340/3e8e2c397c70469f8845fad73aa38165_padmini.JPG",
"pic": "",
"format": "txt",
"changed": "2015-09-22 16:01:41"
}
}
],
"PageIndex": 1,
"PageSize": 20,
"TotalCount": 53521,
"TotalPage": 2677
}
}
这种格式的数据有什么特点,代表什么含义,如何使用呢?
json 发音为 /ˈdʒeɪsən/
,是 JavaScript Object Notation 的简称,它是一种传递对象的语法,对象可以是键值对 key/value 对,数组和其他对象。
json 的数据格式主要包括花括弧 {},方括弧 [],冒号 :和逗号 ,含义如下:
花括弧 {} 表示一个“容器”
方括号 [] 装载数组
双引号“”表示的是属性值,属性和值之间用冒号 :隔开,冒号前面是属性的名称,后面是属性的值,这个值可以是基本数据类型,也可以是引用数据类型。
数组元素通过逗号,隔开
json 与 CSV 格式的数据转换
python 中的实现
在 python 中实现 csv 转 json 格式的代码如下:
import csv
import json
file_path = "your_filePath.csv"
csvfile = open(file_path, 'r')
jsonfile = open('file.json', 'w')
fieldnames = ("Starting Station Latitude", "Starting Station Longitude", "Ending Station Latitude", "Ending Station Longitude")
reader = csv.DictReader( csvfile, fieldnames)
out = json.dumps( [ row for row in reader ] )
jsonfile.write(out)
R 中的实现
利用 R 语言做数据分析,通常数据结构是 dataframe ,可以利用 R 包 jsonlite 实现 dataframe 与 json 格式间的互换。
将 json 转为 dataframe 方式1
# 将 json 数据文件放置在当前文件夹下
# 加载 jsonlite 包,请事先安装好
library(jsonlite)
mydf <- fromJSON(file.json)
# 将 json 数据文件放置在当前文件夹下
# 加载 jsonlite 包,请事先安装好
library(jsonlite)
# 批量导入当前文件夹下json数据文件名,每个文件名以.json结尾
filelist <- list.files(pattern=".*.json")
# 查看文件个数
length(filelist)
# 当前系统时间
time1<-Sys.time()
# 利用fromJSON函数按照文件名列表读取文件
datalist <- lapply(filelist, function(x) fromJSON(x))
# 读取文件花费的时间
time2<-Sys.time()-time1
time2