DataFrame转化为json的方法教程
创始人
2024-02-28 10:57:38

网络上有好多的教程,讲得不太清楚和明白,我用实际的例子说明了一下内容,附档代码,方便理解和使用 

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='infer', index=True, indent=None) [source]

将对象转换为JSON字符串。

注意:NaNNone将被转换为nulldatetime对象将被转换为UNIX时间戳。

参数:

path_or_buf :str 或 file handle, 默认为 None

文件路径或对象。如果未指定,则结果以字符串形式返回。

orient :str

预期的JSON字符串格式的指示。

1) Series:

默认值为‘index’

允许的值为:{'split','records','index','table'}

2) DataFrame:

默认为‘columns’

允许的值为:

{'split','records','index','columns','values','table'}

3) JSON字符串格式:

'split':类似{'index'-> [index],

'columns'-> [columns],'data'-> [values]}的字典

'records':类似于[{column-> value},…,{column-> value}]的列表

'index':类似{index->​​ {column-> value}}的字典

'columns':类似{column-> {index->​​ value}}的字典

'values’:只是值数组

'table':类似{'schema':{schema},'data':{data}}的字典

描述数据,其中数据成分类似于orient='records'

在版本0.20.0中更改。

date_format :{None, ‘epoch’, ‘iso’}

日期转换的类型。'epoch'= epoch milliseconds

'iso'= ISO8601。默认值取决于orient

对于 orient='table',默认值为'iso'

对于所有其他东方,默认值为‘epoch’.。

double_precision :int, 默认为10

在对浮点值进行编码时要使用的小数位数。

force_ascii :bool, 默认为True

强制将字符串编码为ASCII

date_unit :str,默认为“ms”(毫秒)

要编码的时间单位,控制时间戳和ISO8601精度。

“s”,“ms”,“us”,“ns”之一分别表示秒,毫秒,微秒和纳秒。

default_handler :callable, 默认为None

如果对象不能转换为适合JSON的格式,则调用。

应该接收一个参数,该参数是要转换的对象并返回一个可序列化对象。

lines :bool, 默认为 False

如果'orient''records',则写出行分隔的json格式。

如果不正确的‘orient’将抛出ValueError,因为其他人没有列出。

compression :{‘infer’, ‘gzip’, ‘bz2’, ‘zip’, ‘xz’, None}

表示要在输出文件中使用的压缩的字符串,

仅在第一个参数是文件名时使用。默认情况下,

压缩是从文件名推断出来的。

在0.24.0版本中更改:增加了“infer”选项并将其设置为默认

index :bool, 默认为 True

是否在JSON字符串中包括索引值。

仅当Orient“split”“table”时,

才支持不包括index(index=False)。

0.23.0版中的新功能。

indent int, 可选

用于缩进每条记录的空白长度。

1.0.0版的新功能。。

返回值:

None 或 str

如果path_or_bufNone

则将生成的json格式作为字符串返回。

否则返回None

Notes

indent=0的行为与stdlib不同,stdlib不会缩进输出,但会插入新行。目前,在panda中,indent=0和默认的indent=None是等价的,不过在将来的版本中可能会更改。

df = pd.DataFrame( [["A0001", "张三"], ["A0002", "李四"]], index=["row 1", "row 2"],columns=["工号", "姓名"] )
print('-------------------------------------------')
print(df)
print('index')
print(df.to_json(orient='index',force_ascii=False))
print('columns')
print(df.to_json(orient='columns',force_ascii=False))
print('split')
print(df.to_json(orient='split',force_ascii=False))
print('records')
print(df.to_json(orient='records',force_ascii=False))
mydate={"parts":df.to_json(orient='records',force_ascii=False)}
print(mydate)
print('table')
print(df.to_json(orient='table',force_ascii=False))
print('values')
print(df.to_json(orient='values',force_ascii=False))
print('-------------------------------------------')
#遍历
for index, row in df.iterrows():print(index)print(row)

输出内容,理解转化在json的内容的逻辑

-------------------------------------------工号  姓名
row 1  A0001  张三
row 2  A0002  李四
index
{"row 1":{"工号":"A0001","姓名":"张三"},"row 2":{"工号":"A0002","姓名":"李四"}}
columns
{"工号":{"row 1":"A0001","row 2":"A0002"},"姓名":{"row 1":"张三","row 2":"李四"}}
split
{"columns":["工号","姓名"],"index":["row 1","row 2"],"data":[["A0001","张三"],["A0002","李四"]]}
records
[{"工号":"A0001","姓名":"张三"},{"工号":"A0002","姓名":"李四"}]
{'parts': '[{"工号":"A0001","姓名":"张三"},{"工号":"A0002","姓名":"李四"}]'}
table
{"schema":{"fields":[{"name":"index","type":"string"},{"name":"工号","type":"string"},{"name":"姓名","type":"string"}],"primaryKey":["index"],"pandas_version":"1.4.0"},"data":[{"index":"row 1","工号":"A0001","姓名":"张三"},{"index":"row 2","工号":"A0002","姓名":"李四"}]}
values
[["A0001","张三"],["A0002","李四"]]
-------------------------------------------
row 1
工号    A0001
姓名       张三
Name: row 1, dtype: object
row 2
工号    A0002
姓名       李四
Name: row 2, dtype: object

相关内容

热门资讯

埃菲尔铁塔在哪 中国仿建埃菲尔... 2019年4月26日,广西南宁市,街头惊现一座巨型山寨版埃菲尔铁塔,高约20米,白色塔身,造型逼真,...
北京的名胜古迹 北京最著名的景... 北京从元代开始,逐渐走上帝国首都的道路,先是成为大辽朝五大首都之一的南京城,随着金灭辽,金代从海陵王...
苗族的传统节日 贵州苗族节日有... 【岜沙苗族芦笙节】岜沙,苗语叫“分送”,距从江县城7.5公里,是世界上最崇拜树木并以树为神的枪手部落...
应用未安装解决办法 平板应用未... ---IT小技术,每天Get一个小技能!一、前言描述苹果IPad2居然不能安装怎么办?与此IPad不...
脚上的穴位图 脚面经络图对应的... 人体穴位作用图解大全更清晰直观的标注了各个人体穴位的作用,包括头部穴位图、胸部穴位图、背部穴位图、胳...
长白山自助游攻略 吉林长白山游... 昨天介绍了西坡的景点详细请看链接:一个人的旅行,据说能看到长白山天池全凭运气,您的运气如何?今日介绍...
demo什么意思 demo版本... 618快到了,各位的小金库大概也在准备开闸放水了吧。没有小金库的,也该向老婆撒娇卖萌服个软了,一切只...
猫咪吃了塑料袋怎么办 猫咪误食... 你知道吗?塑料袋放久了会长猫哦!要说猫咪对塑料袋的喜爱程度完完全全可以媲美纸箱家里只要一有塑料袋的响...
世界上最漂亮的人 世界上最漂亮... 此前在某网上,选出了全球265万颜值姣好的女性。从这些数量庞大的女性群体中,人们投票选出了心目中最美...
埃菲尔铁塔在哪 中国仿建埃菲尔... 2019年4月26日,广西南宁市,街头惊现一座巨型山寨版埃菲尔铁塔,高约20米,白色塔身,造型逼真,...
苗族的传统节日 贵州苗族节日有... 【岜沙苗族芦笙节】岜沙,苗语叫“分送”,距从江县城7.5公里,是世界上最崇拜树木并以树为神的枪手部落...
北京的名胜古迹 北京最著名的景... 北京从元代开始,逐渐走上帝国首都的道路,先是成为大辽朝五大首都之一的南京城,随着金灭辽,金代从海陵王...
应用未安装解决办法 平板应用未... ---IT小技术,每天Get一个小技能!一、前言描述苹果IPad2居然不能安装怎么办?与此IPad不...