ad

从《Python数据分析案例教程》中_领悟数据和Python的魅力_5.5 Pandas 读写JSON 数据

admin 75 2023-10-25

【摘要】 本书摘自《Python数据分析案例教程》一书中第5章,第5节,由万念斌、肖伟东、叶丰标编著。

5.5 Pandas 读写JSON 数据

从《Python数据分析案例教程》中_领悟数据和Python的魅力_5.5 Pandas 读写JSON 数据

JSON(JavaScript Object Notation)是一种轻量级的数据交换格式,易于人阅读和编写,同时也易于机器解析和生成。任何支持的类型都可以通过 JSON 来表示,如字符串、数 字,对象、数组等。对象和数组是比较特殊且常用的两种类型,对象在 JS 中是使用花括号 {}括起来的内容,数据结构为{keyl:valuel,key2:value2,...}的键值对结构。在面向对象的 语言中,key 为对象的属性,value 为对应的值。键名可以使用整数和字符串来表示,值的类 型可以是任意类型。数组在JavaScript(JS)中是用方括号[]括起来的内容,数据结构为类 似["java","javascript","vb",…]的索引结构。在JS 中,数组是一种比较特殊的数据类型, 它可以像对象那样使用键值对,但还是以索引使用得多。同样,值的类型可以是任意类型。

Pandas提供 I/O API函数中的 read json()和 to json()函数用于读写JSON 格式的 数据。

Pandas 读取 JSON 文件的 read json()函数的原型为:

pandas.read json(path or buf=None,orient=None,typ='frame',dtype=True, convert axes=True,convert dates=True,encoding=None, …)

函数参数的作用如下:

(1)path or buf:JSON 字符串 URL 或文件,URL 类型包括 HTTP、FTP、s3 和文件。

(2)orient:方向,指示预期的JSON 字符串格式,值可以是:

"split":类似于{index->[index],columns->[columns],data->[values]} 的 dict。

"records":类似于[{column->value},…,{column->value}] 的 list。

"index":类似于{index->{column->value}} 的 dict。

"columns":类似于{column->{index->value}} 的 dict。

"values":仅数组值,此值和默认值取决于 typ 参数的值。

当typ= '系列,允许 orient的值是{'split','records','index'},默认值为'index'。orient 的值是'index'时序列索引必须唯一。

当 typ='frame '时,允许 orient的值为{'split','records','index','columns','values'}, 默认值为"列"。 orient的值为'index'和'columns '时,数据帧索引必须唯一;orient 的值为 index'、'columns'和'records'时,数据帧列必须唯一。

(3)typ:类型,要恢复的对象类型(系列或帧),默认为“帧”。

(4)dtype:布尔型或 dict型,默认为 True。

(5)convert axes:转换轴,布尔值,默认为True,将轴转换为正确的数据类型。

(6)convert dates:转换日期,布尔值,默认为 True。

(7)encoding:编码,默认为'utf-8'。

DataFrame 数据写入JSON 文件函数 to json()的原型为:

DataFrame.to json(self,path or buf=None,orient = None,date format = None,

double precision=10,force ascii=True,date unit='ms', …)

函数参数的作用如下:

(1)path or buf:JSON字符串URL 或文件,URL 类型包括 HTTP、FTP、s3和文件。

(2)orient:方向,指示预期的JSON 字符串格式,值可以是:

"Series":默认值为"index",允许值为{'split','records','index','table'};

"DataFrame":默认值为"columns",允许值为{'split','records','index',' columns', 'values','table}。

JSON 字符串的格式为:

"split":类似于{'index'->[index],'columns'->[columns],'data'->[values]} 的 dict;

"records":类似于[{column->value},…,{column->value}] 的 list;

"index":类似于{index->{column->value}} 的 dict;

"columns":类似于{column->{index->value}} 的 dict;

"values":仅数组值;

"table":类似于{'schema':{schema},'data':{data}}的 dict。

(3)date format:日期格式,日期转换的类型为{None,'epoch','iso'},"epoch"=epoch 毫秒,"iso"=iso8601。 默认值取决于方向,当 orient='table',默认值为'iso';当 orient为其 他值时,默认值为"epoch"。

(4)double precision:双精度,int,编码浮点值时要使用的小数位数默认为10。

(5)force ascii:强制编码字符串为 ASCII,默认为 True。

(6)date unit:日期单位,默认为 ms (毫秒)。

版权声明:本文内容由网络用户投稿,版权归原作者所有,本站不拥有其著作权,亦不承担相应法律责任。如果您发现本站中有涉嫌抄袭或描述失实的内容,请联系我们 [email protected] 处理,核实后本网站将在24小时内删除侵权内容。

上一篇:学习《零基础Java从入门到精通》_3.7 操作运算符
下一篇:《智能制造服务云平台初探》_让你更懂智能制造_6.9 无线对讲系统
相关文章

 发表评论

暂时没有评论,来抢沙发吧~

×