下面介绍pandas库对json数据的处理:
read_json:从json文件中读取数据
to_json:将pandas中的数据写入到json文件中
json_normalize:对json数据进行规范化处理
https://geek-docs.com/pandas/pandas-read-write/pandas-reading-and-writing-json.html
read_json
首先看看
官网
中
read_json
的参数:
pandas.read_json(
path_or_buf=None,
orient=None,
typ='frame',
dtype=None,
convert_axes=None,
convert_dates=True,
keep_default_dates=True,
numpy=False,
precise_float=False,
date_unit=None,
encoding=None,
lines=False,
chunksize=None,
compression='infer',
nrows=None,
storage_options=None)
详细的参数解析可以参考文章:https://blog.csdn.net/qq_41562377/article/details/90203805
假设我们现在有一份json数据,如下图所示:
我们将上面的数据读取进来,由于数据是比较规范的,所以直接填写文件路径即可读取:
重点讲解下参数orient
:
1、oriden='split'
split’ : dict like {index -> [index], columns -> [columns], data -> [values]}
json文件的key的名字只能为index,cloumns,data
这三个,另外多一个key都不行,少一个也不行。举例说明:
2、orient='records'
‘records’ : list like [{column -> value}, … , {column -> value}]
3、orient='index'
dict like {index -> {column -> value}}
4、orient='columns'
dict like {column -> {index -> value}}
转置之后就是上面orient='index'
的结果
5、orient='values'
‘values’ : just the values array
to_json
to_json
方法就是将DataFrame文件保存成json文件:
df.to_json("个人信息.json")
如果按照上面的代码保存,中文是没有显示的:
当然我们可以通过json.load
将json文件再次读取进行,显示中文,我们也可以直接在保存的时候显示中文:
df.to_json("个人信息1.json",force_ascii=False)
json_normalize
https://www.jianshu.com/p/a84772b994a0
上面介绍的json数据的保存和读取中json数据都是列表形式的;但是json文件中的数据通常不一定全部是列表形式,那么我们需要将字典结构的文件转成列表形式,这个过程就叫做规范化。
pandas中的json_normalize()
函数能够将字典或列表转成表格,使用之前先进行导入:
from pandas.io.json import json_normalize
通过官网和一个实际的例子来同时进行学习,首先看看官网的例子:
1、层级字典通过属性的形式显示数据:
2、如果加入max_level参数则会显示不同的效果:
若max_level=0,则嵌套的字典会当做整体,显示在数据框中
若max_level=1,则嵌套的字典会被拆解,里面的键会被单独出来:
3、读取层级嵌套中的部分内容:
4、读取全部内容
json
数据是工作中经常会遇到的一种数据格式,也是很重要的一种数据。
本文首先对json
数据及格式进行了简介,重新认识json
数据;其次,结合各种实际案例,将json
和Python
的各种数据类型,尤其是字典类型进行了转化;最后,重要讲解了json
数据的读取、写入和规范化的操作
需要读者重点掌握5个包或者库或者方法:
import json
import demjson
pd.read_json
pd.to_json
from pandas.io.json import json_normalize
希望通过文章的讲解能够帮助读者搞定json
数据😃