对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实现同时兼容老版和新版Socket协议的一个简单WebSocket服务器
Jun 04 Python
使用Python的PEAK来适配协议的教程
Apr 14 Python
python简单商城购物车实例代码
Mar 15 Python
pytorch cnn 识别手写的字实现自建图片数据
May 20 Python
pandas的唯一值、值计数以及成员资格的示例
Jul 25 Python
Pandas_cum累积计算和rolling滚动计算的用法详解
Jul 04 Python
Python 获取numpy.array索引值的实例
Dec 06 Python
Python matplotlib画曲线例题解析
Feb 07 Python
Python使用jpype模块调用jar包过程解析
Jul 29 Python
Python高并发和多线程有什么关系
Nov 14 Python
如何用 Python 制作 GitHub 消息助手
Feb 20 Python
python爬虫破解字体加密案例详解
Mar 02 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微信支付通知的处理方式
2014/05/25 PHP
php输出xml必须header的解决方法
2014/10/17 PHP
PHP操作文件的一些基本函数使用示例
2014/11/18 PHP
PHP积分兑换接口实例
2015/02/09 PHP
火狐浏览器(firefox)下获得Event对象以及keyCode
2008/11/13 Javascript
window.js 主要包含了页面的一些操作
2009/12/23 Javascript
jquery对dom的操作常用方法整理
2013/06/25 Javascript
jquery ajax jsonp跨域调用实例代码
2013/12/11 Javascript
Jquery对象和Dom对象的区别分析
2014/11/20 Javascript
JavaScript获取Url里的参数
2014/12/18 Javascript
jQuery插件uploadify实现ajax效果的图片上传
2016/06/18 Javascript
功能强大的Bootstrap效果展示(二)
2016/08/03 Javascript
AngularJS 入门教程之事件处理器详解
2016/08/19 Javascript
AngularJS实现Input格式化的方法
2016/11/07 Javascript
微信小程序获取用户openId的实现方法
2017/05/23 Javascript
动态统计当前输入内容的字节、字符数的实例详解
2017/10/27 Javascript
vue通过滚动行为实现从列表到详情,返回列表原位置的方法
2018/08/31 Javascript
微信小程序的tab选项卡的实现效果
2019/05/15 Javascript
js构造函数constructor和原型prototype原理与用法实例分析
2020/03/02 Javascript
Python中使用PyHook监听鼠标和键盘事件实例
2014/07/18 Python
Python对小数进行除法运算的正确方法示例
2014/08/25 Python
Python连接phoenix的方法示例
2017/09/29 Python
[原创]教女朋友学Python3(二)简单的输入输出及内置函数查看
2017/11/30 Python
利用Python进行数据可视化常见的9种方法!超实用!
2018/07/11 Python
查看python下OpenCV版本的方法
2018/08/03 Python
对django中render()与render_to_response()的区别详解
2018/10/16 Python
使用python实现数组、链表、队列、栈的方法
2019/12/20 Python
python实现加密的方式总结
2020/01/19 Python
详解anaconda安装步骤
2020/11/23 Python
CSS3解决移动页面上点击链接触发色块的问题
2016/06/03 HTML / CSS
荷兰优雅女装网上商店:Heine
2016/11/14 全球购物
辅导员评语
2014/05/04 职场文书
酒店前台接待岗位职责
2015/04/02 职场文书
美德少年事迹材料(2016推荐版)
2016/02/25 职场文书
【海涛教你打DOTA】剑圣第一人称视角解说
2022/04/01 DOTA
Nginx配置使用详解
2022/07/07 Servers