对pandas处理json数据的方法详解

作者:qq_24499417 时间:2023-09-02 22:32:22 

今天展示一个利用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数据的方法详解

来源:https://blog.csdn.net/qq_24499417/article/details/81428594

标签:pandas,json
0
投稿

猜你喜欢

  • Python同时向控制台和文件输出日志logging的方法

    2021-10-12 07:35:11
  • 图文详解python安装Scrapy框架步骤

    2022-02-11 15:02:47
  • python得到单词模式的示例

    2021-04-22 08:25:48
  • python语音识别实践之百度语音API

    2021-11-26 19:06:40
  • 不能忽略c#中的using和as操作符的用处

    2024-03-23 08:08:41
  • CSS阴影详解

    2009-12-04 18:31:00
  • MYSQL数据库设计的一点总结

    2008-05-24 09:36:00
  • 使用python解析xml成对应的html示例分享

    2022-05-05 21:02:27
  • TensorFlow打印tensor值的实现方法

    2021-12-17 21:05:57
  • pandas.DataFrame.to_json按行转json的方法

    2022-11-09 11:24:23
  • MySQL主从搭建(多主一从)的实现思路与步骤

    2024-01-18 01:14:02
  • 详解CSS3中的属性选择符

    2008-04-24 14:30:00
  • vue3动态添加路由

    2024-05-13 09:08:34
  • 详解Python with/as使用说明

    2022-10-29 08:01:26
  • 作为PHP程序员你要知道的另外一种日志

    2023-11-15 02:06:59
  • vue-router钩子函数实现路由守卫

    2024-04-27 16:09:23
  • python使用mailbox打印电子邮件的方法

    2023-09-05 10:15:30
  • Python使用random模块生成随机数操作实例详解

    2022-06-28 21:50:27
  • SQL实现相邻两行数据的加减乘除操作

    2024-01-24 23:12:34
  • pandas筛选某列出现编码错误的解决方法

    2021-10-18 02:48:05
  • asp之家 网络编程 m.aspxhome.com