|
| 1 | +# 4-8 JSON在Python中的应用 |
| 2 | +JSON 是一系列键值对(key=>value)的组合,key必须唯一,value可以是任何类型(也可以是另外一个JSON),和Python的字典(Dict)类型非 |
| 3 | + |
| 4 | +常相似,以一对大括号 {}标识开始和结束, key用双引号""标识,value根据数据的类型除为JSON对象和数值类型外,其它都需要加双引号"" |
| 5 | + |
| 6 | +看一个简单的JSON: |
| 7 | + |
| 8 | +{"name": "大美丽", "age": 18} |
| 9 | + |
| 10 | +包含两个key, "name" , "age" value为两种类型,"大美丽" 字符型, 18 数字型 |
| 11 | + |
| 12 | +JSON是当前互联网数据请求接口传输中必备的数据结构,因为它短小、清晰、简洁、快速。相对于同样可以做数据传输和描述的XML来说, |
| 13 | + |
| 14 | +XML相对比起来就笨重、复杂了好多 |
| 15 | + |
| 16 | +python提供了两个有用的函数来处理json的数据,使用下面方法的时候,需要先导入json库 |
| 17 | + |
| 18 | +- json.dumps 将一个python的类型(一般为字典或者列表)转为json字符串 |
| 19 | +- json.loads 将一个JSON字符串,转为字典, 因为python是不能直接操作JSON的,需要把JSON转成python可以识别的类型 |
| 20 | +## 1.python中如何使用json - json.dumps |
| 21 | +### 代码区 1 |
| 22 | +```python |
| 23 | + 1 import json |
| 24 | + 2 |
| 25 | + 3 # 定义了一个字典类型的数据类型 |
| 26 | + 4 d = {'name': '大漂亮', 'age': 18} |
| 27 | + 5 |
| 28 | + 6 # 通过 json.dumps把字典类型的转为json字符串, 第二个参数,主要解决中文乱码显示的问题 , 因为 |
| 29 | + 7 # dumps 对于非ascii字符生成的是相对应的字符编码,而非原始字符 |
| 30 | + 8 j = json.dumps(d, ensure_ascii=False) |
| 31 | + 9 print('我转成了json字符串', j) |
| 32 | +10 |
| 33 | +11 # 下面用到了type函数, type用来返回变量的变量的数据类型 让你明白,dumps进行了数据转换 |
| 34 | +12 print(type(d)) |
| 35 | +13 print(type(j)) |
| 36 | +14 |
| 37 | +``` |
| 38 | + |
| 39 | +```python |
| 40 | +我转成了json字符串 {"name": "大漂亮", "age": 18} |
| 41 | +<class 'dict'> |
| 42 | +<class 'str'> |
| 43 | +``` |
| 44 | +## 2.python中如何使用json - json.loads |
| 45 | +### 代码区 2 |
| 46 | +```python |
| 47 | + 1 import json |
| 48 | + 2 |
| 49 | + 3 value = '{"name": "大美丽", "age": 18}' |
| 50 | + 4 |
| 51 | + 5 print(type(value)) |
| 52 | + 6 print('我是一个JSON字符串', value) |
| 53 | + 7 |
| 54 | + 8 print('==================================') |
| 55 | + 9 |
| 56 | +10 d = json.loads(value) |
| 57 | +11 print(type(d)) |
| 58 | +12 print('我转成了字典类型', d) |
| 59 | +13 print('取出字典中的name', d['name']) |
| 60 | +14 |
| 61 | +``` |
| 62 | + |
| 63 | +```python |
| 64 | +<class 'str'> |
| 65 | +我是一个JSON字符串 {"name": "大美丽", "age": 18} |
| 66 | +================================== |
| 67 | +<class 'dict'> |
| 68 | +我转成了字典类型 {'name': '大美丽', 'age': 18} |
| 69 | +取出字典中的name 大美丽 |
| 70 | +``` |
| 71 | + |
| 72 | + |
| 73 | + |
| 74 | + |
| 75 | + |
| 76 | + |
| 77 | + |
| 78 | + |
| 79 | + |
| 80 | + |
| 81 | + |
0 commit comments