对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中的MongoDB基本操作:连接、查询实例
Feb 13 Python
Python中的模块导入和读取键盘输入的方法
Oct 16 Python
浅析Python中yield关键词的作用与用法
Nov 29 Python
JSONLINT:python的json数据验证库实例解析
Nov 28 Python
利用python的socket发送http(s)请求方法示例
May 07 Python
Python 十六进制整数与ASCii编码字符串相互转换方法
Jul 09 Python
python实现换位加密算法的示例
Oct 14 Python
在Mac下使用python实现简单的目录树展示方法
Nov 01 Python
Python实现字符串中某个字母的替代功能
Oct 21 Python
pytorch dataloader 取batch_size时候出现bug的解决方式
Feb 20 Python
Python同时处理多个异常的方法
Jul 28 Python
安装python依赖包psycopg2来调用postgresql的操作
Jan 01 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实现读取和编写XML DOM代码
2010/04/07 PHP
PHP 文件系统详解
2012/09/13 PHP
PHP魔术方法的使用示例
2015/06/23 PHP
启用Csrf后POST数据时出现的400错误
2015/07/05 PHP
宝塔面板在NGINX环境中TP5.1如何运行?
2021/03/09 PHP
尽可能写"友好"的"Javascript"代码
2007/01/09 Javascript
JQuery中的$.getJSON 使用说明
2011/03/10 Javascript
JS验证身份证有效性示例
2013/10/11 Javascript
如何在父窗口中得知window.open()出的子窗口关闭事件
2013/10/15 Javascript
基于React.js实现原生js拖拽效果引发的思考
2016/03/30 Javascript
js点击返回跳转到指定页面实现过程
2020/08/20 Javascript
JS使用单链表统计英语单词出现次数
2016/06/16 Javascript
浅谈window.onbeforeunload() 事件调用ajax
2016/06/29 Javascript
BootstrapValidator不触发校验的实现代码
2016/09/28 Javascript
Angular 中 select指令用法详解
2016/09/29 Javascript
javascript 动态样式添加的简单实现
2016/10/11 Javascript
Postman模拟发送带token的请求方法
2018/03/31 Javascript
JavaScript实现学生在线做题计时器功能
2018/12/05 Javascript
详解ng-alain动态表单SF表单项设置必填和正则校验
2019/06/11 Javascript
微信小程序 搜索框组件代码实例
2019/09/06 Javascript
QML实现圆环颜色选择器
2019/09/25 Javascript
python实现雨滴下落到地面效果
2018/06/21 Python
python3解析库BeautifulSoup4的安装配置与基本用法
2018/06/26 Python
Django Rest framework之权限的实现示例
2018/12/17 Python
python生成器/yield协程/gevent写简单的图片下载器功能示例
2019/10/28 Python
Pytorch 实现计算分类器准确率(总分类及子分类)
2020/01/18 Python
解决keras加入lambda层时shape的问题
2020/06/11 Python
京东全球售:直邮香港,澳门,台湾,美国,澳大利亚等地区
2017/09/24 全球购物
英国复古皮包品牌:Beara Beara
2018/07/18 全球购物
空字符串(“”)和null的区别
2012/11/13 面试题
C#中有没有静态构造函数,如果有是做什么用的?
2016/06/04 面试题
销售会计岗位职责
2014/03/15 职场文书
入党积极分子学习党的纲领思想汇报
2014/09/13 职场文书
网络安全倡议书(3篇)
2019/09/18 职场文书
MYSQL如何查看操作日志详解
2022/05/30 MySQL
详解CSS3浏览器兼容
2022/12/24 HTML / CSS