python笔记之JSON模块

JSON(JavaScript Object Notation) 是一种轻量级数据交互格式,python3使用json模块JSON 数据进行编解码,简单的理解就是 对数据对象进行序列化,或者反序列化。

序列化:将python数据对象编码为JSON格式字符串;

反序列化:将JSON格式字符串解码给python数据对象。 

json模块中常用的方法:json.dumps、json.loads、json.dump、json.load,其中json.dumps、json.loads用于对数据编解码,json.dump、json.load用于对数据文件的编解码。

Python 编码为 JSON 类型转换对应表:(以下图片来源菜鸟教程)

JSON 解码为 Python 类型转换对应表:(以下图片来源菜鸟教程)

 下面看一下具体json.dumps、json.loads实例:

 1 import json
 2 
 3 str1 = 'python is good!'
 4 list1 = ['c','java','python','php']
 5 tuple1 = ('1','2','3','4')
 6 dict1 = {'name':'admin','age':'20','address':'sz'}
 7 
 8 str_json = json.dumps(str1) #对字符串进行序列化
 9 print("类型:{0},内容:{1}".format(type(str_json),str_json))
10 json_str = json.loads(str_json) #反序列化
11 print("类型:{0},内容:{1}".format(type(json_str),json_str))
12 
13 list_json = json.dumps(list1) #对列表进行序列化
14 print("类型:{0},内容:{1}".format(type(list_json),list_json))
15 json_list = json.loads(list_json)
16 print("类型:{0},内容:{1}".format(type(json_list),json_list))
17 
18 tuple_json = json.dumps(tuple1) #对元祖进行序列化
19 print("类型:{0},内容:{1}".format(type(tuple_json),tuple_json))
20 json_tuple = json.loads(tuple_json)
21 print("类型:{0},内容:{1}".format(type(json_tuple),json_tuple))  #注意元祖序列化和反序列化后 变成列表
22 
23 dict_json = json.dumps(dict1) #对字典进行序列化
24 print("类型:{0},内容:{1}".format(type(dict_json),dict_json))
25 json_dict = json.loads(dict_json)
26 print("类型:{0},内容:{1}".format(type(json_dict),json_dict))

json.dump、json.load对文件处理实例:

 1 import json
 2 
 3 #写数据
 4 dict1 = {'name':'admin','age':'20','address':'sz'}
 5 with open('data.json', 'w') as f:
 6     json.dump(dict1, f)
 7 
 8 # 读取数据
 9 with open('data.json', 'r') as f:
10     data = json.load(f)
11     print(data)

猜你喜欢

转载自www.cnblogs.com/heertong/p/12159063.html