JSON 是一系列键值对(key=>value)的组合,key必须唯一,value可以是任何类型(也可以是另外一个JSON),和Python的字典(Dict)类型非
常相似,以一对大括号 {}标识开始和结束, key用双引号""标识,value根据数据的类型除为JSON对象和数值类型外,其它都需要加双引号""
看一个简单的JSON:
{"name": "大美丽", "age": 18}
包含两个key, "name" , "age" value为两种类型,"大美丽" 字符型, 18 数字型
JSON是当前互联网数据请求接口传输中必备的数据结构,因为它短小、清晰、简洁、快速。相对于同样可以做数据传输和描述的XML来说,
XML相对比起来就笨重、复杂了好多
python提供了两个有用的函数来处理json的数据,使用下面方法的时候,需要先导入json库
- json.dumps 将一个python的类型(一般为字典或者列表)转为json字符串
- json.loads 将一个JSON字符串,转为字典, 因为python是不能直接操作JSON的,需要把JSON转成python可以识别的类型
1 import json
2
3 # 定义了一个字典类型的数据类型
4 d = {'name': '大漂亮', 'age': 18}
5
6 # 通过 json.dumps把字典类型的转为json字符串, 第二个参数,主要解决中文乱码显示的问题 , 因为
7 # dumps 对于非ascii字符生成的是相对应的字符编码,而非原始字符
8 j = json.dumps(d, ensure_ascii=False)
9 print('我转成了json字符串', j)
10
11 # 下面用到了type函数, type用来返回变量的变量的数据类型 让你明白,dumps进行了数据转换
12 print(type(d))
13 print(type(j))
14
我转成了json字符串 {"name": "大漂亮", "age": 18}
<class 'dict'>
<class 'str'>
1 import json
2
3 value = '{"name": "大美丽", "age": 18}'
4
5 print(type(value))
6 print('我是一个JSON字符串', value)
7
8 print('==================================')
9
10 d = json.loads(value)
11 print(type(d))
12 print('我转成了字典类型', d)
13 print('取出字典中的name', d['name'])
14
<class 'str'>
我是一个JSON字符串 {"name": "大美丽", "age": 18}
==================================
<class 'dict'>
我转成了字典类型 {'name': '大美丽', 'age': 18}
取出字典中的name 大美丽