对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网络编程学习笔记(六):Web客户端访问
Jun 09 Python
Python的垃圾回收机制深入分析
Jul 16 Python
Python实现获取网站PR及百度权重
Jan 21 Python
Python中struct模块对字节流/二进制流的操作教程
Jan 21 Python
详谈Numpy中数组重塑、合并与拆分方法
Apr 17 Python
Python基于win32ui模块创建弹出式菜单示例
May 09 Python
python实现比较文件内容异同
Jun 22 Python
Python 读取串口数据,动态绘图的示例
Jul 02 Python
解决python 上传图片限制格式问题
Oct 30 Python
Python-jenkins模块之folder相关操作介绍
May 12 Python
详解tensorflow2.x版本无法调用gpu的一种解决方法
May 25 Python
Python实现自动签到脚本的示例代码
Aug 19 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/01/26 PHP
php网站判断用户是否是手机访问的方法
2013/11/01 PHP
Php无限级栏目分类读取的实现代码
2014/02/19 PHP
PHP实现PDO的mysql数据库操作类
2014/12/12 PHP
C# WinForm中实现快捷键自定义设置实例
2015/01/23 PHP
phpStudy访问速度慢和启动失败的解决办法
2015/11/19 PHP
PHP实现合并两个排序链表的方法
2018/01/19 PHP
实例化php类时传参的方法分析
2020/06/05 PHP
javascript获取所有同类checkbox选项(实例代码)
2013/11/07 Javascript
基于jQuery实现自动轮播旋转木马特效
2015/11/02 Javascript
JavaScript定义数组的三种方法(new Array(),new Array('x','y')
2016/10/04 Javascript
Javascript Function.prototype.bind详细分析
2016/12/29 Javascript
详解基于angular路由的requireJs按需加载js
2017/01/20 Javascript
详解Angular路由 ng-route和ui-router的区别
2017/05/22 Javascript
微信小程序实现发红包功能
2018/07/11 Javascript
js脚本中执行java后台代码方法解析
2019/10/11 Javascript
vue之封装多个组件调用同一接口的案例
2020/08/11 Javascript
Python字符遍历的艺术
2008/09/06 Python
Python编程入门的一些基本知识
2015/05/13 Python
python中实现迭代器(iterator)的方法示例
2017/01/19 Python
Python实现图片滑动式验证识别方法
2017/11/09 Python
Python中循环后使用list.append()数据被覆盖问题的解决
2018/07/01 Python
设置python3为默认python的方法
2018/10/31 Python
如何在Django中设置定时任务的方法示例
2019/01/18 Python
计算机二级python学习教程(2) python语言基本语法元素
2019/05/16 Python
PyQt QCombobox设置行高的方法
2019/06/20 Python
基于python中__add__函数的用法
2019/11/25 Python
CSS3中box-shadow的用法介绍
2015/07/15 HTML / CSS
css3中仿放大镜效果的几种方式原理解析
2020/12/03 HTML / CSS
html5 兼容IE6结构的实现代码
2012/05/14 HTML / CSS
一个不错的HTML5 Canvas多层点击事件监听实例
2014/04/29 HTML / CSS
HSRP的含义以及如何工作
2014/09/10 面试题
幼儿教师师德师风演讲稿
2014/08/22 职场文书
思想政治表现评语
2015/01/04 职场文书
2015年企业团支部工作总结
2015/05/21 职场文书
《清澈的湖水》教学反思
2016/02/17 职场文书