python中的json模块

一. 什么是JSON

1. JSON是JavaScript Object Notation的缩写,它是一种数据交换格式

2. 本质是一个字符串,是JS对象的字符串表示法

3. 与python中的字典很类似,不过有一些语法上的区别

  • 没有None值,只有null值

  • utf-8的编码格式

  • 字符串必须是双引号来表达的

4. python当中的字符串要转换成json对象,要使用json库来完成

二. 导入json模块

import json

三. json模块常用方法

1. json.dumps(str, indent=4, sort_keys=True)  将一个python数据对象转换成一个json字符串

  • indent:格式化输出json数据,呈现更直观。indent=4表示缩进4个空格

  • sort_keys:json字符串按照字典的key进行排序

2. json.loads()  将一个json字符串转换成python对象,比如json字符串转换成列表、字典

四. 实例

实例1

import json

#把一个python对象转换成json字符串
a = {"name": "xiaozhai", "sex": None}

b = json.dumps(a)
print(b)
print(type(b))

#把一个json字符串转换成一个python字典
c = json.loads(b)
print(c)
print(type(c))

运行结果

{"name": "xiaozhai", "sex": null}
<class 'str'>
{'name': 'xiaozhai', 'sex': None}
<class 'dict'>

注意:print()函数为了生成可读性更好的输出, 它会省去引号并打印,如果我们在python自带的IDLE中,不加print(),会看到更好的效果

实例2:json.dumps()中indent的作用是缩进空格,sorted_keys会按照字典中key的首字母进行排序

import json

#把一个python对象转换成json字符串
a = {"name": "xiaozhai", "sex": None}

b = json.dumps(a, indent=4, sort_keys=True)
print(b)
print(type(b))

运行结果

{
    "name": "xiaozhai",
    "sex": null
}
<class 'str'>

五. 附录

1. python原始类型向json类型的转化对照表

Python JSON
dict object
list, tuple array
str, unicode string
int, long, float number
True true
False false
None null

2. json类型转换到python类型的转化对照表

JSON Python
object dict
array list
string unicode
number(int) int, long
number(real) float
true True
false False
null None

参考文章

http://www.runoob.com/python/python-json.html

https://www.liaoxuefeng.com/wiki/001434446689867b27157e896e74d51a89c25cc8b43bdb3000/001434499490767fe5a0e31e17e44b69dcd1196f7ec6fc6000

猜你喜欢

转载自www.cnblogs.com/cnhkzyy/p/9193375.html