对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 相关文章推荐
Windows下实现Python2和Python3两个版共存的方法
Jun 12 Python
Python实现可获取网易页面所有文本信息的网易网络爬虫功能示例
Jan 15 Python
在Django中输出matplotlib生成的图片方法
May 24 Python
python:接口间数据传递与调用方法
Dec 17 Python
python 切换root 执行命令的方法
Jan 19 Python
Python 从subprocess运行的子进程中实时获取输出的例子
Aug 14 Python
Django之路由层的实现
Sep 09 Python
python 调试冷知识(小结)
Nov 11 Python
浅谈sklearn中predict与predict_proba区别
Jun 28 Python
Python中使用Selenium环境安装的方法步骤
Feb 22 Python
python机器学习实现oneR算法(以鸢尾data为例)
Mar 03 Python
python 使用pandas读取csv文件的方法
Dec 24 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
珊瑚虫IP库浅析
2007/02/15 PHP
PHP缓存技术的多种方法小结
2012/08/14 PHP
PHP pthreads v3下worker和pool的使用方法示例
2020/02/21 PHP
Laravel统一错误处理为JSON的方法介绍
2020/10/18 PHP
JavaScript入门教程 Cookies
2009/01/31 Javascript
JavaScript 函数调用规则
2009/09/14 Javascript
基于jQuery的弹出警告对话框美化插件(警告,确认和提示)
2010/06/10 Javascript
面向对象继承实例(a如何继承b问题)(自写)
2013/07/01 Javascript
jquery实现点击文字可编辑并修改保存至数据库
2014/04/15 Javascript
JavaScript常用函数工具集:lao-utils
2016/03/01 Javascript
原生js封装的一些jquery方法(详解)
2016/09/20 Javascript
Angular使用Md5加密的解决方法
2017/09/16 Javascript
小程序日历控件使用方法详解
2018/12/29 Javascript
JavaScript Array对象基本方法详解
2019/09/03 Javascript
基于vue-simple-uploader封装文件分片上传、秒传及断点续传的全局上传插件功能
2021/02/23 Vue.js
[02:02]特效爆炸!DOTA2珍宝之瓶待你开启
2018/08/21 DOTA
[02:08]2018年度CS GO枪械皮肤设计大赛优秀作者-完美盛典
2018/12/16 DOTA
[00:56]跨越时空加入战场 全新祈求者身心“失落奇艺侍祭”展示
2019/07/20 DOTA
Python实现在线程里运行scrapy的方法
2015/04/07 Python
讲解Python中运算符使用时的优先级
2015/05/14 Python
python实现自动网页截图并裁剪图片
2018/07/30 Python
Python3爬楼梯算法示例
2019/03/04 Python
python抓取搜狗微信公众号文章
2019/04/01 Python
python接口自动化测试之接口数据依赖的实现方法
2019/04/26 Python
Python二进制文件读取并转换为浮点数详解
2019/06/25 Python
Python实现变声器功能(萝莉音御姐音)
2019/12/05 Python
TensorFlow实现保存训练模型为pd文件并恢复
2020/02/06 Python
python实现人像动漫化的示例代码
2020/05/17 Python
Python devel安装失败问题解决方案
2020/06/09 Python
python 基于pygame实现俄罗斯方块
2021/03/02 Python
HTML5 本地存储 LocalStorage详解
2016/06/24 HTML / CSS
党员领导干部民主生活会批评与自我批评发言
2014/09/28 职场文书
四风问题对照检查材料思想汇报
2014/10/07 职场文书
中学生逃课检讨书
2015/02/17 职场文书
德劲DE1105机评
2022/04/05 无线电
JAVA长虹键法之建造者Builder模式实现
2022/04/10 Java/Android