对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运行的17个时新手常见错误小结
Aug 07 Python
python通过装饰器检查函数参数数据类型的方法
Mar 13 Python
python3实现短网址和数字相互转换的方法
Apr 28 Python
使用pyecharts无法import Bar的解决方案
Apr 23 Python
Python实现对一个函数应用多个装饰器的方法示例
Feb 09 Python
Python 使用list和tuple+条件判断详解
Jul 30 Python
如何通过Django使用本地css/js文件
Jan 20 Python
完美解决pycharm导入自己写的py文件爆红问题
Feb 12 Python
Python学习之路之pycharm的第一个项目搭建过程
Jun 18 Python
利用scikitlearn画ROC曲线实例
Jul 02 Python
Python requests及aiohttp速度对比代码实例
Jul 16 Python
Python常遇到的错误和异常
Nov 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
十大催泪虐心动漫,你能坚持看到第几部?
2020/03/04 日漫
destoon实现调用自增数字从1开始的方法
2014/08/21 PHP
PHP程序中使用adodb连接不同数据库的代码实例
2015/12/19 PHP
PHP读取mssql json数据中文乱码的解决办法
2016/04/11 PHP
JavaScript DSL 流畅接口(使用链式调用)实例
2015/03/15 Javascript
跟我学习javascript的作用域与作用域链
2015/11/19 Javascript
解决jQuery使用JSONP时产生的错误
2015/12/02 Javascript
有关easyui-layout中的收缩层无法显示标题的解决办法
2016/05/10 Javascript
JS实现兼容火狐及IE iframe onload属性的遮罩层隐藏及显示效果
2016/08/23 Javascript
Bootstrap select下拉联动(jQuery cxselect)
2017/01/04 Javascript
微信小程序 label 组件详解及简单实例
2017/01/10 Javascript
jQuery移除或禁用html元素点击事件常用方法小结
2017/02/10 Javascript
addEventListener()与removeEventListener()解析
2017/04/20 Javascript
socket.io学习教程之基本应用(二)
2017/04/29 Javascript
详解Vue学习笔记入门篇之组件的内容分发(slot)
2017/07/17 Javascript
JS异步执行结果获取的3种解决方式
2019/02/19 Javascript
详解Vue.directive 自定义指令
2019/03/27 Javascript
详解babel升级到7.X采坑总结
2019/05/12 Javascript
vue.js中导出Excel表格的案例分析
2019/06/11 Javascript
微信小程序sessionid不一致问题解决
2019/08/30 Javascript
简单解析Django框架中的表单验证
2015/07/17 Python
Python网络爬虫与信息提取(实例讲解)
2017/08/29 Python
linecache模块加载和缓存文件内容详解
2018/01/11 Python
Python turtle绘画象棋棋盘
2019/08/21 Python
python 多维高斯分布数据生成方式
2019/12/09 Python
python 截取XML中bndbox的坐标中的图像,另存为jpg的实例
2020/03/10 Python
Python爬虫工具requests-html使用解析
2020/04/29 Python
python判断元素是否存在的实例方法
2020/09/24 Python
Python-split()函数实例用法讲解
2020/12/18 Python
北美领先的智能产品购物网站:Wellbots
2018/06/11 全球购物
西班牙美妆电商:Perfume’s Club(有中文站)
2018/08/08 全球购物
学期自我鉴定范文
2013/10/01 职场文书
计算机操作自荐信
2013/12/07 职场文书
三年级学生评语
2014/04/23 职场文书
本科生求职信
2014/06/17 职场文书
基层工作经历证明
2015/06/19 职场文书