2.3.4 Python和JSON

XML是一种传递数据的格式,还有一种常用的传递数据格式— JSON,它是一种轻量级的数据交换格式,如果要做Web编程,则会用到它。
JSON建构于两种结构:
“键/值”对的集合
值的有序列表
Python标准库中有JSON模块,主要执行序列化和反序列化功能。
序列化:encoding,把一个Python对象编码转化成JSON字符串。
反序列化:decoding,把JSON格式字符串解码转换为Python数据对象。
1, 基本操作
>>> import json
>>> json.__all__
['dump', 'dumps', 'load', 'loads', 'JSONDecoder', 'JSONEncoder']
查看JSON有哪写内建函数。
encoding: dumps()
>>> data = [{"name":"zhangsan","like":("python","liuyifei"),"age":28}]
>>> data_json = json.dumps (data)
>>> data
[{'age': 28, 'name': 'zhangsan', 'like': ('python', 'liuyifei')}]
>>> data_json
'[{"age": 28, "name": "zhangsan", "like": ["python", "liuyifei"]}]'
>>> type(data)
<type 'list'>
>>> type(data_json)
<type 'str'>
注意观察data和data_json的不同——一个是list,一个是str
decoding: loads() 解码
>>> new_data = json . loads (data_json)
>>> new_data
[{u'age': 28, u'name': u'zhangsan', u'like': [u'python', u'liuyifei']}]
格式化阅读
>>> data1 = json.dumps (data, sort_keys =True, indent =2)
>>> print data1
[
{
"age": 28,
"like": [
"python",
"liuyifei"
],
"name": "zhangsan"
}
]
sort_keys=True意思是按照键的字典顺序排序,indent=2是让每个键/值对显示的时候,以缩进两个字符对齐
2, JSON大量数据处理
上面的操作方法,都是将数据读入内存当作,这在少量数据的情况下没问题;随着时代发展,现在数据越来越多,只靠内存显然是不行的;JSON提供了 load()函数和 dump()函数来解决这个问题( 注意和上面的函数区分

写入文件:
>>> data
[{u'age': 28, u'name': u'zhangsan', u'like': [u'python', u'liuyifei']}]
>>> with open("D://data.json","w") as f:
json. dump (data,f)
读取文件:
>>> with open("D://data.json","r") as f:
data = json. load (f)
print data
[{u'age': 28, u'name': u'zhangsan', u'like': [u'python', u'liuyifei']}]
注意:还可以使用 tempfile创建临时文件来实现
  • 3
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 0
    评论
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值