python操作json_利用Python进行数据分析——Python操作JSON格式的数据(五) | 学步园...

1、JSON(JavaScript Object Notation的简称)已经成为通过HTTP请求在Web浏览器和其他应用程序之间发送数据的标准格式之一。它是一种轻量级数据交换格式,相对于XML而言更简单,也易于阅读和编写,机器也方便解析和生成,Json是JavaScript中的一个子集。

2、准备数据

>>> obj = """

... {"name":"Wes",

... "places_lived":["United States", "Spain", "Germany"],

... "pet":null,

... "siblings":[{"name":"Scott", "age":25, "pet":"Zuko"}, {"name":"Katie", "age":33, "pet":"Cisco"}]

... }

... """

处理之后,则:

{

"name": "Wes",

"places_lived": [

"United States",

"Spain",

"Germany"

],

"pet": null,

"siblings": [

{

"name": "Scott",

"age": 25,

"pet": "Zuko"

},

{

"name": "Katie",

"age": 33,

"pet": "Cisco"

}

]

}

说明:

对象(字典)中所有的键都必须是字符串。

3、数据操作

>>> import json

>>> result = json.loads(obj)

>>> result

{u'pet': None, u'siblings': [{u'pet': u'Zuko', u'age': 25, u'name': u'Scott'}, {u'pet': u'Cisco', u'age': 33, u'name': u'Katie'}], u'name': u'Wes', u'places_lived': [u'United States', u'Spain', u'Germany']}

>>> type(result)

>>> asjson = json.dumps(result)

>>> asjson

'{"pet": null, "siblings": [{"pet": "Zuko", "age": 25, "name": "Scott"}, {"pet": "Cisco", "age": 33, "name": "Katie"}], "name": "Wes", "places_lived": ["United States", "Spain", "Germany"]}'

说明:

(1)许多Python库都可以读写JSON数据,我们将使用json,因为它是构建与Python标准库中的。通过json.loads即可将JSON字符串转换成Python形式。

(2)相反,json.dumps则将Python对象转换成JSON格式。

4、JSON与DataFrame

>>> import pandas as pd

>>> siblings = pd.DataFrame(result['siblings'], columns=['name', 'age'])

>>> siblings

name age

0 Scott 25

1 Katie 33

5、数据类型

下面这个列表简要地描述了Python内置数据类型(适用于Python 3.x):

20140324175658953

说明:

Python内置丰富的数据类型,除了各种数据类型,Python语言还用类型来表示函数、模块、类型本身、对象的方法、编译后的Python代码、运行时信息等等。因此,Python具备很强的动态性。

6、I/O操作

序列化(Serialization):将对象的状态信息转换为可以存储或可以通过网络传输的过程,传输的格式可以是JSON、XML等。反序列化就是从存储区域(JSON,XML)读取反序列化对象的状态,重新创建该对象。

Python2.6开始加入了JSON模块,无需另外下载,Python的Json模块序列化与反序列化的过程分别是encoding和decoding:

encoding:把一个Python对象编码转换成Json字符串。

decoding:把Json格式字符串解码转换成Python对象。

7、参考文献

[1]  《利用Python进行数据分析》

  • 0
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 0
    评论
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值