对pandas处理json数据的方法详解


Posted in Python onFebruary 08, 2019

今天展示一个利用pandas将json数据导入excel例子,主要利用的是pandas里的read_json函数将json数据转化为dataframe。

先拿出我要处理的json字符串:

strtext='[{"ttery":"min","issue":"20130801-3391","code":"8,4,5,2,9","code1":"297734529","code2":null,"time":1013395466000},\
{"ttery":"min","issue":"20130801-3390","code":"7,8,2,1,2","code1":"298058212","code2":null,"time":1013395406000},\
{"ttery":"min","issue":"20130801-3389","code":"5,9,1,2,9","code1":"298329129","code2":null,"time":1013395346000},\
{"ttery":"min","issue":"20130801-3388","code":"3,8,7,3,3","code1":"298588733","code2":null,"time":1013395286000},\
{"ttery":"min","issue":"20130801-3387","code":"0,8,5,2,7","code1":"298818527","code2":null,"time":1013395226000}]'

pandas.read_json的语法如下:

pandas.read_json(path_or_buf=None, orient=None, typ='frame', dtype=True, 
convert_axes=True, convert_dates=True, keep_default_dates=True, 
numpy=False, precise_float=False, date_unit=None, encoding=None, 
lines=False, chunksize=None, compression='infer')

第一参数就是json文件路径或者json格式的字符串。

第二参数orient是表明预期的json字符串格式。orient的设置有以下几个值:

(1).'split' : dict like {index -> [index], columns -> [columns], data -> [values]}

这种就是有索引,有列字段,和数据矩阵构成的json格式。key名称只能是index,columns和data。

对pandas处理json数据的方法详解

'records' : list like [{column -> value}, ... , {column -> value}]

这种就是成员为字典的列表。如我今天要处理的json数据示例所见。构成是列字段为键,值为键值,每一个字典成员就构成了dataframe的一行数据。

'index' : dict like {index -> {column -> value}}

以索引为key,以列字段构成的字典为键值。如:

对pandas处理json数据的方法详解

'columns' : dict like {column -> {index -> value}}

这种处理的就是以列为键,对应一个值字典的对象。这个字典对象以索引为键,以值为键值构成的json字符串。如下图所示:

对pandas处理json数据的方法详解

'values' : just the values array。

values这种我们就很常见了。就是一个嵌套的列表。里面的成员也是列表,2层的。

对pandas处理json数据的方法详解

主要就说下这两个参数吧。下面我们回到示例中来。我们看前面可以发现示例是一个orient为records的json字符串。

这样就好处理了。看代码:

# -*- coding: utf-8 -*-
"""
Created on Sun Aug 5 09:01:38 2018
@author: FanXiaoLei
"""
import pandas as pd
strtext='[{"ttery":"min","issue":"20130801-3391","code":"8,4,5,2,9","code1":"297734529","code2":null,"time":1013395466000},\
{"ttery":"min","issue":"20130801-3390","code":"7,8,2,1,2","code1":"298058212","code2":null,"time":1013395406000},\
{"ttery":"min","issue":"20130801-3389","code":"5,9,1,2,9","code1":"298329129","code2":null,"time":1013395346000},\
{"ttery":"min","issue":"20130801-3388","code":"3,8,7,3,3","code1":"298588733","code2":null,"time":1013395286000},\
{"ttery":"min","issue":"20130801-3387","code":"0,8,5,2,7","code1":"298818527","code2":null,"time":1013395226000}]'
 
df=pd.read_json(strtext,orient='records')
df.to_excel('pandas处理json.xlsx',index=False,columns=["ttery","issue","code","code1","code2","time"])

最终写入excel如下图:

对pandas处理json数据的方法详解

以上这篇pandas处理json数据就是小编分享给大家的全部内容了,希望能给大家一个参考,也希望大家多多支持三水点靠木。

Python 相关文章推荐
Python 不同对象比较大小示例探讨
Aug 21 Python
利用Python进行异常值分析实例代码
Dec 07 Python
利用Pandas 创建空的DataFrame方法
Apr 08 Python
python使用循环打印所有三位数水仙花数的实例
Nov 13 Python
pytorch 预训练层的使用方法
Aug 20 Python
python nmap实现端口扫描器教程
May 28 Python
django admin后管定制-显示字段的实例
Mar 11 Python
Python基于pandas绘制散点图矩阵代码实例
Jun 04 Python
Django restful framework生成API文档过程详解
Nov 12 Python
Python类class参数self原理解析
Nov 19 Python
如何通过安装HomeBrew来安装Python3
Dec 23 Python
Django权限控制的使用
Jan 07 Python
对python读取zip压缩文件里面的csv数据实例详解
Feb 08 #Python
利用python在excel里面直接使用sql函数的方法
Feb 08 #Python
浅谈pandas筛选出表中满足另一个表所有条件的数据方法
Feb 08 #Python
pandas dataframe添加表格框线输出的方法
Feb 08 #Python
python读取有密码的zip压缩文件实例
Feb 08 #Python
对python判断是否回文数的实例详解
Feb 08 #Python
用Python解决x的n次方问题
Feb 08 #Python
You might like
PHP完整的日历类(CLASS)
2006/11/27 PHP
ThinkPHP模板中数组循环实例
2014/10/30 PHP
TNC vs IO BO3 第一场2.13
2021/03/10 DOTA
firefox火狐浏览器与与ie兼容的2个问题总结
2010/07/20 Javascript
javascript来定义类的规范小结
2010/11/19 Javascript
推荐 21 款优秀的高性能 Node.js 开发框架
2014/08/18 Javascript
实例讲解JQuery中this和$(this)区别
2014/12/08 Javascript
javascript动态生成树形菜单的方法
2015/11/14 Javascript
Bootstrap实现带动画过渡的弹出框
2016/08/09 Javascript
jquery 正整数数字校验正则表达式
2017/01/10 Javascript
Angular2实现组件交互的方法分析
2017/12/19 Javascript
layui之select的option叠加问题的解决方法
2018/03/08 Javascript
Vue cli构建及项目打包以及出现的问题解决
2018/08/27 Javascript
微信小程序使用gitee进行版本管理
2018/09/20 Javascript
微信JS-SDK updateAppMessageShareData安卓不能自定义分享详解
2019/03/29 Javascript
Node Express用法详解【安装、使用、路由、中间件、模板引擎等】
2020/05/13 Javascript
weui上传多图片,压缩,base64编码的示例代码
2020/06/22 Javascript
微信小程序实现电子签名功能
2020/07/29 Javascript
python paramiko实现ssh远程访问的方法
2013/12/03 Python
用yum安装MySQLdb模块的步骤方法
2016/12/15 Python
Python实现查看系统启动项功能示例
2018/05/10 Python
解决pycharm运行时interpreter为空的问题
2018/10/29 Python
python3实现名片管理系统
2020/11/29 Python
利用python、tensorflow、opencv、pyqt5实现人脸实时签到系统
2019/09/25 Python
python 给图像添加透明度(alpha通道)
2020/04/09 Python
python根据字典的键来删除元素的方法
2020/08/16 Python
Python获取android设备cpu和内存占用情况
2020/11/15 Python
python中requests模拟登录的三种方式(携带cookie/session进行请求网站)
2020/11/17 Python
使用html5 canvas 画时钟代码实例分享
2015/11/11 HTML / CSS
应届大学生求职信
2013/12/01 职场文书
婚前协议书
2014/04/15 职场文书
小学清明节活动总结
2014/07/04 职场文书
全陪导游词开场白
2015/05/29 职场文书
Python趣味挑战之教你用pygame画进度条
2021/05/31 Python
R9700摩机记
2022/04/05 无线电
Android学习之BottomSheetDialog组件的使用
2022/06/21 Java/Android