Python笔记9:Python中的json

介绍

不了解JSON的可以先取看看json:http://json.org/

python中有自带的json编码器和解码器

  1. dumps
  2. loads
  3. dump
  4. 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)

>>> type(newl2)


# 验证,结果为字符串类型数据
>>> 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))

>>> type(json.loads(newl2))

首先要导入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'}

你可能感兴趣的:(Python笔记9:Python中的json)