对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 ORM框架SQLAlchemy学习笔记之安装和简单查询实例
Jun 10 Python
Python实现二分法算法实例
Feb 02 Python
使用PyCharm配合部署Python的Django框架的配置纪实
Nov 19 Python
Python如何快速实现分布式任务
Jul 06 Python
Python3.5编程实现修改IIS WEB.CONFIG的方法示例
Aug 18 Python
深入理解Python中的*重复运算符
Oct 28 Python
mac PyCharm添加Python解释器及添加package路径的方法
Oct 29 Python
利用python脚本如何简化jar操作命令
Feb 24 Python
python中dict使用方法详解
Jul 17 Python
解析python的局部变量和全局变量
Aug 15 Python
Python实现列表索引批量删除的5种方法
Nov 16 Python
Python3使用Selenium获取session和token方法详解
Feb 16 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 函数执行效率的小比较
2010/10/17 PHP
LotusPhp笔记之:Cookie组件的使用详解
2013/05/06 PHP
使用Composer安装Yii框架的方法
2016/03/15 PHP
PHP邮箱验证示例教程
2016/06/01 PHP
Extjs EditorGridPanel中ComboBox列的显示问题
2011/07/04 Javascript
Javascript操作cookie的函数代码
2012/10/03 Javascript
javascript操作符"!~"详解
2015/02/10 Javascript
第十篇BootStrap轮播插件使用详解
2016/06/21 Javascript
基于JavaScript实现窗口拖动效果
2017/01/18 Javascript
JS判断非空至少输入两个字符的简单实现方法
2017/06/23 Javascript
浅谈JS 数字和字符串之间相互转化的纠纷
2017/10/20 Javascript
seajs下require书写约定实例分析
2018/05/16 Javascript
Iview Table组件中各种组件扩展的使用
2018/10/20 Javascript
vue-cli 3 全局过滤器的实例代码详解
2019/06/03 Javascript
通过循环优化 JavaScript 程序
2019/06/24 Javascript
JS使用H5实现图片预览功能
2019/09/30 Javascript
vue动态设置页面title的方法实例
2020/08/23 Javascript
[01:56]无止竞 再出发——中国军团出征2017年DOTA2国际邀请赛
2017/07/05 DOTA
用Python从零实现贝叶斯分类器的机器学习的教程
2015/03/31 Python
python 二分查找和快速排序实例详解
2017/10/13 Python
pandas 数据实现行间计算的方法
2018/06/08 Python
Python 实现Windows开机运行某软件的方法
2018/10/14 Python
详解Python安装tesserocr遇到的各种问题及解决办法
2019/03/07 Python
django 微信网页授权登陆的实现
2019/07/30 Python
详解python statistics模块及函数用法
2019/10/27 Python
浅析Python 责任链设计模式
2020/09/11 Python
记一次python 爬虫爬取深圳租房信息的过程及遇到的问题
2020/11/24 Python
python中的时区问题
2021/01/14 Python
工程负责人任命书
2014/06/06 职场文书
群众路线教育实践活动批评与自我批评
2014/09/15 职场文书
学习三严三实对照检查材料思想汇报
2014/09/22 职场文书
2014教育局对照检查材料思想汇报
2014/09/23 职场文书
2014班子成员自我剖析材料思想汇报
2014/10/01 职场文书
群众路线教育实践活动自我剖析思想汇报
2014/10/04 职场文书
房产证明范本
2015/06/19 职场文书
Docker 镜像介绍以及commit相关操作
2022/04/13 Servers