1 import json
2 import pickle
3 # ----------------------------------------------#
4 # 反序列化
5 # ----------------------------------------------#
6 # object
7 json_str = '{"name":"qiyue", "age":18}' # JSON字符串
8 student = json.loads(json_str) # JSON對象轉換爲字典
9 print(student)
10 print(json_str)
11 print(type(student))
12
13 # object
14 json_str1 = '[{"name":"qiyue", "age":18, "flag":false}, ' \
15 '{"name":"qiyue", "age":18}]' # JSON字符串
16 student1 = json.loads(json_str1) # JSON對象轉換爲字典
17 print(type(student1), student1)
18 print(student1[0])
19
20 # ----------------------------------------------#
21 # 序列化
22 # ----------------------------------------------#
23 student2 = [
24 {"name": "qiyue", "age": 18, "flag": False},
25 {"name": "qiyue", "age": 18}
26 ]
27
28 json_str1 = json.dumps(student2) # 轉換爲字符串後能夠利用正則表達式處理字符串
29 print(type(json_str1), json_str1)
30
31 # ----------------------------------------------#
32 # 處理的是文件
33 # ----------------------------------------------#
34 # 將數據寫入文件
35 student3 = [
36 {"name": "qiyue", "age": 18, "flag": False},
37 {"name": "qiyue", "age": 18}
38 ]
39 with open('data.json', 'w') as f:
40 json.dump(student3, f)
41
42 # 讀取數據
43 with open('data.json', 'r') as f:
44 data = json.load(f)
45
46
47 # dumps(object)將對象序列化
48 list_a = ["English", "Math", "Chinese"]
49 list_b = pickle.dumps(list_a) # 序列化數據
50 print(list_a)
51 print(list_b)
52
53 # loads(object)將對象原樣恢復,而且對象類型也恢復原來的格式
54 list_c = pickle.loads(list_b)
55 print(list_c)
56
57
58 # dumps(object,file)將對象序列化後存儲到文件中
59 group1 = ("baidu", "wen", "qingtian")
60 f1 = open('group.txt', 'wb')
61 pickle.dump(group1, f1, True)
62 f1.close()
63
64 # load(object, file)將文件中的信息恢復
65 f2 = open('group.txt', 'rb')
66 t = pickle.load(f2)
67 f2.close()
68 print(t)