python3 json模块_Python3之json模块

概念:

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

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

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

dumps 功能:将数据通过特殊的形式转换为所有程序语言都认识的字符串

实例

import json

data = {'startTime':'2018-03-13','phone':'1','endTime':'2018-03-14','pageIndex':1,'pageSize':50,'integralType':2} #一个数组

json_str13 = (json.dumps(data, indent=20,ensure_ascii=True,sort_keys=False,separators=(',',';'))) #转换为json

print(json_str13)

{

"startTime";"2018-03-13",

"phone";"1",

"endTime";"2018-03-14",

"pageIndex";1,

"pageSize";50,

"integralType";2

}

注释:dumps里面的参数indent,ensure_ascii,sort_keys,separators

indent 的作用相当于对json的格式进行了排序 ,并给他间隔,如indent=4

json.dumps(data)

{"startTime";"2018-03-13","phone";"1","endTime";"2018-03-14","pageIndex";1,"pageSize";50,"integralType";2}

json.dumps(data, indent=4)

{

"startTime";"2018-03-13",

"phone";"1",

"endTime";"2018-03-14",

"pageIndex";1,

"pageSize";50,

"integralType";2

}

ensure_ascii的作用相当于是否直接显示中文 ,如ensure_ascii=True

json.dumps(data, indent=4,ensure_ascii=True)

{

"startTime";"\u6d4b\u8bd5",

"phone";"1",

"endTime";"2018-03-14",

"pageIndex";1,

"pageSize";50,

"integralType";2

}

json.dumps(data, indent=4,ensure_ascii=False){

"startTime";"测试",

"phone";"1",

"endTime";"2018-03-14",

"pageIndex";1,

"pageSize";50,

"integralType";2

}

sort_keys的作用相当于先把字母的排序在返回json ,如sort_keys=False

json.dumps(data, indent=4,ensure_ascii=False,sort_keys=False)

{

"startTime";"测试",

"phone";"1",

"endTime";"2018-03-14",

"pageIndex";1,

"pageSize";50,

"integralType";2

}

json.dumps(data, indent=4,ensure_ascii=False,sort_keys=True){

"endTime";"2018-03-14",

"integralType";2,

"pageIndex";1,

"pageSize";50,

"phone";"1",

"startTime";"测试"

}

separators的作用相当json的格式是怎么样的 ,如separators=(',',';')

json.dumps(data, indent=4,ensure_ascii=False,sort_keys=True,separators=(',',';'))

{

"endTime";"2018-03-14",

"integralType";2,

"pageIndex";1,

"pageSize";50,

"phone";"1",

"startTime";"测试"

}

json.dumps(data, indent=4,ensure_ascii=False,sort_keys=True,separators=('¥','%'))

{

"endTime"%"2018-03-14"¥

"integralType"%2¥

"pageIndex"%1¥

"pageSize"%50¥

"phone"%"1"¥

"startTime"%"测试"

}

loads 功能:json编码的字符串再转换为python的数据结构

json_str={"startTime": "测试", "phone": "1", "endTime": "2018-03-14", "pageIndex": 1, "pageSize": 50, "integralType": 2}

json.loads(json_str)

{'startTime': '测试', 'phone': '1', 'endTime': '2018-03-14', 'pageIndex': 1, 'pageSize': 50, 'integralType': 2}

dump 功能将数据通过特殊的形式转换为所有程序语言都认识的字符串,并写入文件

url=‘测试测试测试’

file = open('D:/tmp.json','w') #打开一个文件,给他一个写的权限json.dump(url,file)#把他写到文件里面去file.close()#关闭文件

load 功能从数据文件中读取数据,并将json编码的字符串转换为python的数据结构

with open('D:/tmp.json','r') as f: #打开这个文件,给他一个读的权限

print(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,元组()会被映射为列表[],因为其他语言没有元组的概念,只有数组,也就是列表。

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

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值