码迷,mamicode.com
首页 > 编程语言 > 详细

python之json模块

时间:2016-06-25 17:47:20      阅读:227      评论:0      收藏:0      [点我收藏+]

标签:

概念:

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

  JSON(Java Script Object Notation):一种轻量级数据交互格式,相对于XML而言更简单,也易于阅读和编写,机器也方便解析和生成,Json是JavaScript中的一个子集。

  python2.6版本开始加入了JSON模块,python的json模块序列化与反序列化的过程分别是encoding和decoding。

  • encoding:把一个python对象编码转换成Json字符串。
  • decoding:把json格式字符串编码转换成python对象。

 

具体应用:

  json提供四个功能:dumps, dump, loads, load

1 # dumps功能
2 # 将数据通过特殊的形式转换为所有程序语言都认识的字符串
3 >>> import json
4 >>> data = [aa, bb, cc]
5 >>> j_str = json.dumps(data)
6 >>> j_str
7 ["aa", "bb", "cc"]
1 # loads功能
2 # 将json编码的字符串再转换为python的数据结构
3 >>> j_str
4 ["aa", "bb", "cc"]
5 >>> mes = json.loads(j_str)
6 >>> mes
7 [aa, bb, cc]
1 # dump功能
2 # 将数据通过特殊的形式转换为所有程序语言都认识的字符串,并写入文件
3 with open(D:/tmp.json, w) as f:
4     json.dump(data, f)
1 # load功能
2 # 从数据文件中读取数据,并将json编码的字符串转换为python的数据结构
3 with open(D:/tmp.json, r) as f:
4     data = json.load(f)

 说明

  json编码支持的基本类型有:None, bool, int, float, string, list, tuple, dict.

  对于字典,json会假设key是字符串(字典中的任何非字符串key都会在编码时转换为字符串),要符合JSON规范,应该只对python列表和字典进行编码。此外,在WEB应用中,把最顶层对象定义为字典是一种标准做法。

  json编码的格式几乎和python语法一致,略有不同的是:True会被映射为true,False会被映射为false,None会被映射为null,元组()会被映射为列表[],因为其他语言没有元组的概念,只有数组,也就是列表。

1 >>> import json
2 >>> data = {a:True, b:False, c:None, d:(1,2), 1:abc}
3 >>> j_str = json.dumps(data)
4 >>> j_str
5 {"a": true, "c": null, "d": [1, 2], "b": false, "1": "abc"}

 

python之json模块

标签:

原文地址:http://www.cnblogs.com/wang-yc/p/5616187.html

(0)
(0)
   
举报
评论 一句话评论(0
登录后才能评论!
© 2014 mamicode.com 版权所有  联系我们:gaon5@hotmail.com
迷上了代码!