python3 json模块_Python3之json模块

概念:

序列化(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 >>> importjson4 >>> data = ['aa', 'bb', 'cc']5 >>> j_str =json.dumps(data)6 >>>j_str7 '["aa", "bb", "cc"]'

1 #loads功能

2 #将json编码的字符串再转换为python的数据结构

3 >>>j_str4 '["aa", "bb", "cc"]'

5 >>> mes =json.loads(j_str)6 >>>mes7 ['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 >>> importjson2 >>> data = {'a':True, 'b':False, 'c':None, 'd':(1,2), 1:'abc'}3 >>> j_str =json.dumps(data)4 >>>j_str5 '{"a": true, "c": null, "d": [1, 2], "b": false, "1": "abc"}'

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

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值