对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新手实现2048小游戏
Mar 31 Python
Python xlrd读取excel日期类型的2种方法
Apr 28 Python
python中返回矩阵的行列方法
Apr 04 Python
python2.6.6如何升级到python2.7.14
Apr 08 Python
使用python读取txt文件的内容,并删除重复的行数方法
Apr 18 Python
python退出命令是什么?详解python退出方法
Dec 10 Python
Python 函数返回值的示例代码
Mar 11 Python
Django Rest framework权限的详细用法
Jul 25 Python
Python对wav文件的重采样实例
Feb 25 Python
Python爬虫之App爬虫视频下载的实现
Dec 08 Python
python实现图像随机裁剪的示例代码
Dec 10 Python
详解解Django 多对多表关系的三种创建方式
Aug 23 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
MOTOROLA 摩托罗拉 MODEL 66-XI五灯中波收音机
2021/03/02 无线电
php UTF-8、Unicode和BOM问题
2010/05/18 PHP
PHP中模拟处理HTTP PUT请求的例子
2014/07/22 PHP
PHP foreach遍历多维数组实现方式
2016/11/16 PHP
基于PHP+mysql实现新闻发布系统的开发
2020/08/06 PHP
jQueryPad 实用的jQuery测试工具(支持IE,chrome,FF)
2010/05/22 Javascript
js删除所有的cookie的代码
2010/11/25 Javascript
jquery插件jSignature实现手动签名
2015/05/04 Javascript
详解JavaScript中shift()方法的使用
2015/06/09 Javascript
easyui Droppable组件实现放置特效
2015/08/19 Javascript
JS实现兼容性好,带缓冲的动感网页右键菜单效果
2015/09/18 Javascript
BootStrap Table对前台页面表格的支持实例讲解
2016/12/22 Javascript
angularjs 实现带查找筛选功能的select下拉框实例
2017/01/11 Javascript
[01:30:54]《加油DOTA》 第三期
2014/08/18 DOTA
Python编写百度贴吧的简单爬虫
2015/04/02 Python
python制作一个桌面便签软件
2015/08/09 Python
python3利用Dlib19.7实现人脸68个特征点标定
2018/02/26 Python
Python单元测试简单示例
2018/07/03 Python
Python异常处理操作实例详解
2018/08/28 Python
python清除字符串前后空格函数的方法
2018/10/21 Python
python爬虫之urllib,伪装,超时设置,异常处理的方法
2018/12/19 Python
python使用threading.Condition交替打印两个字符
2019/05/07 Python
python matplotlib中的subplot函数使用详解
2020/01/19 Python
基于python实现可视化生成二维码工具
2020/07/08 Python
python安装mysql的依赖包mysql-python操作
2021/01/01 Python
探究 canvas 绘图中撤销(undo)功能的实现方式详解
2018/05/17 HTML / CSS
利用 Canvas实现绘画一个未闭合的带进度条的圆环
2019/07/26 HTML / CSS
N:Philanthropy官网:美国洛杉矶基础款服装
2020/06/09 全球购物
JAVA的事件委托机制和垃圾回收机制
2014/09/07 面试题
玩具公司的创业计划书
2013/12/31 职场文书
2014年两会学习心得体会
2014/03/17 职场文书
活动总结模板
2014/05/09 职场文书
2014年英语教研组工作总结
2014/12/06 职场文书
财务会计求职信范文
2015/03/20 职场文书
教师理论学习心得体会
2016/01/21 职场文书
用Python创建简易网站图文教程
2021/06/11 Python