本文接上一篇博客:Python处理JSON文件数据各类操作一文详解。
处理JSON文件一般并且进行统计或分析都需要把JSON文件格式转换为dataframe形式或是将dataframe转换为JSON,这都需要用到to_json()和read_json()函数。如果能够掌握该两种函数的参数用法能够节省不少时间和代码对后续的文件再处理,因此本篇文章初衷为详细介绍并运用此函数来达到彻底掌握的目的。希望读者看完能够提出问题或者看法,博主会长期维护博客做及时更新。纯分享,希望大家喜欢。
to_json()函数主要是将DataFrame数据类型转换为JSON文件格式。
直接看官网解释:
pandas.DataFrame.to_json
默认参数格式为:
DataFrame.to_json(path_or_buf=None, orient=None, date_format=None, double_precision=10, force_ascii=True, date_unit='ms', default_handler=None, lines=False, compression=None, index=True)
orient='records'
.。到时候实现一下即可了解、接下来进行操作演示:
先创建对应dataframe:
date={'code':[20,20,19,19,20],
'type':['hive','hive','clickhouse','clickhouse','hive'],
'datetime':['2022-5-23','2022-5-23','2022-5-23','2022-5-23','2022-5-24']
}
df=pd.DataFrame(date)
time_data = pd.to_datetime(df["datetime"],format='%Y-%m-%d')
df['datetime']=time_data
df.dtypes
df.to_json(orient='split')
该方法将行索引和列索引和值全都分开来进行存储成json格式。
df.to_json(orient='records')
直接将dataframe的内容输出为列表,此类方法不会把index和columns记录到JSON文件中。
df.to_json(orient='index')
该方法直接以index行索引为键,不记录列索引columns进行保存。
df.to_json(orient='columns')
该方法直接以columns列索引为键,不记录行索引index进行保存。
df.to_json(orient='values')
该方法就直接输出值列表了,没有记录index和columns。
df.to_json(orient='table')
从输出格式上来看,该输出将Dataframe输出为具体的表格记录,schema中记录了各个index、columns、data的类型,默认主键为"primaryKey":["index"]。其中data为为逐行记录数据,每一行根据索引index和columns来输出。
date_format有两种格式可以选择,分别是'epoch‘和'iso'。默认为epoch,意为将日期转为毫秒形式:
df.to_json(orient='values',date_format='epoch')
df.to_json(orient='values',date_format='iso')
df.to_json(orient='values',date_format='iso',double_precision=10)
精度默认为小数点后10位,自己可以调值。
默认为ASCII编码,这里不用演示。
df.to_json(orient='values',date_unit='s')
该参数关联epoch,设定的参数将觉得读出来的datetime转化为秒还是毫秒、微秒和纳秒.默认为毫秒。
该函数如果对象无法转换为适合JSON的格式,则调用处理程序。不作演示。
df.to_json(orient='split',index=False)
index设定只能orient为split和table的时候使用,默认为True,设定为False将不再记录index。
pandas.to_json官方文档阅读