介绍
不了解JSON的可以先取看看json:http://json.org/
python中有自带的json编码器和解码器
- dumps
- loads
- dump
- load
以上四种方法是python中json的主要处理方法
区别
- dumps的模块可以把特定的对象序列化处理为字符串
# 定义两个序列
>>> l1 = [1,2,3,123]
>>> l2 = {'version':1,'code':"test"}
# dumps转换
>>> newl1 = json.dumps(l1)
>>> newl2 = json.dumps(l2)
# 检验类型,结果为string类型
>>> type(newl1)
<class 'str'>
>>> type(newl2)
<class 'str'>
# 验证,结果为字符串类型数据
>>> newl1
'[1, 2, 3, 123]'
>>> newl2
'{"version": 1, "code": "test"}'
- loads模块,和dumps正好相反,就是对字符串进行反序列化的,前提是要符合被转换格式的字符串
# loads转换
>>> json.loads(newl1)
[1, 2, 3, 123]
>>> json.loads(newl2)
{'version': 1, 'code': 'test'}
# 证明类型
>>> type(json.loads(newl1))
<class 'list'>
>>> type(json.loads(newl2))
<class 'dict'>
首先要导入json库
>>> import json
json排序
sort_keys默认缺省,值默认为False
>>> test_json = {"c":'this is C',"b":"this is B","a":'this is A'}
>>> json.dumps(test_json,sort_keys=True)
'{"a": "this is A", "b": "this is B", "c": "this is C"}'
紧凑编码 和 缩进
# 紧凑编码
>>> json.dumps([1,2,3,{'4' : 5, "6" : 7}], separators=(',',':'))
'[1,2,3,{"4":5,"6":7}]'
# 缩进
>>> print(json.dumps({"1":2,"2":3,"3":4},sort_keys=True,indent = 4))
{
"1": 2,
"2": 3,
"3": 4
}
# 不用print输出的是\n
json解码
# load
>>> x = open("test.json")
>>> json.load(x)
{'version': 1, 'code': 'abcdefg'}
# loads
>>> json.loads('{"version":1,"code":"test"}')
{'version': 1, 'code': 'test'}
网友评论